код пузырьковой сортировки - PullRequest
0 голосов
/ 28 июня 2018

Это мой код сортировки пузырьков, но я не понимаю, почему на выходе отображается только 125.

int secondArray[] = { 0, 1, 5, 2 };
int num;

for (int i = 1; i < secondArray.length; i++) {
    for (int j = 0; j < secondArray.length - i ; j++) {
        if (secondArray[j] > secondArray[j + 1]) {
            num = secondArray[j];
            secondArray[j] = secondArray[j+1];
            secondArray[j+1] = num;
        }
    }
    System.out.print(secondArray[i]);
}

Ответы [ 4 ]

0 голосов
/ 13 октября 2018
public class Example {
public static void sortArray(int[] x){
    for(int j=0; j<x.length-1; j++){
        for(int i=0; i<x.length-1;i++){
            if(x[i]>x[i+1]){
                int temp=x[i];
                x[i]=x[i+1];
                x[i+1]=temp;
            }
        }
    }
}
public static void main(String[] args) {
    int[] x={32,98,35,76,26,89,1,46,21,7};
    System.out.println(Arrays.toString(x));
    sortArray(x);
    System.out.println(Arrays.toString(x));
}
0 голосов
/ 28 июня 2018

Пожалуйста, введите следующий код:

    int secondArray[] = { 0, 1, 5, 2 };
    int num;

    for (int i = 0; i < secondArray.length - 1; i++) {
        for (int j = 0; j < secondArray.length - 1 - i; j++) {
            if (secondArray[j] > secondArray[j + 1]) {
                num = secondArray[j];
                secondArray[j] = secondArray[j+1];
                secondArray[j+1] = num;
            }
        }
    }
    for(int number : secondArray){
        System.out.print(number);
    }
0 голосов
/ 28 июня 2018

Проверьте это.

int secondArray[] = { 0, 1, 5, 2 };
    int temp;

    for(int i = 0, k=secondArray.length; i < secondArray.length / 2;i++) {
        temp = secondArray[i];
        secondArray[i] = secondArray[--k];
        secondArray[k] = temp;
        System.out.println(secondArray[0]+" "+secondArray[1]+" "+secondArray[2]+" "+secondArray[3]);
    }
0 голосов
/ 28 июня 2018

Это потому, что вы выполняете итерацию с 1 -> int i = 1;, но массив начинается с 0, поэтому System.out.print(secondArray[i]); никогда не сможет отобразить первый элемент.

...