Метод пузырьковой сортировки + метод перестановки внутри - PullRequest
1 голос
/ 09 января 2020

Мне понадобится помощь для этого упражнения. Я должен создать метод, содержащий пузырьковую сортировку, и внутри этого метода другой, который меняет значения. Я попробовал это:

public static void main(String[] args) {

        int i, taille = 5;
        int[] tableau = new int [taille];

        Scanner readKeyboard = new Scanner(System.in);

        System.out.println("Introduisez des valeurs positives ou négatives");

        for (i=0; i < taille; i++)
        {
            tableau[i] = readKeyboard.nextInt();
        }

        bubblesort(tableau);

        System.out.println("Tableau trié");

        for (i=0; i < taille; i++)
        {
            System.out.println(tableau[i]);
        }

    }

    public static void swapping(int a, int b)
    {
        int tmp;

        tmp     =   a;
        a       =   b;
        b       =   tmp;

    }

    public static void bubblesort(int[] tab)   
    {  
        int i, j;
        for(i=0; i < tab.length; i++) 
        {
                for(j=1; j < (tab.length-i); j++)
                {  
                        if(tab[j-1] > tab[j])
                        {
                            swapping(tab[j-1], tab[j]);
                        }
                }
        }
    }

И моя проблема в том, что мои значения не меняются внутри метода пузырьковой сортировки. Должен ли я использовать другой тип метода, кроме void для них или просто для обмена?

Ответы [ 2 ]

0 голосов
/ 09 января 2020

Вам необходимо обновить свой метод "замены" следующим.

 private static void swapping(int[] array,int i,int j) {
    int temp = array[i];
    array[i] = array[j];
    array[j] = temp;
}
0 голосов
/ 09 января 2020

Поменяйте их внутри метода bubbleort, вместо того чтобы вызывать метод swap, вы получите свой результат.

...