java - 从最大到最小的排序 - 最大的是乱序

Cli*_*n J 2 java sorting algorithm

我试图让这种排序算法在数组中从大到小排序.这就是我所拥有的:

private void sort(int[] data) {
    int min;
    for (int index = 0; index < data.length - 1; index++) {
        min = index;
        for (int scan = index + 1; scan < data.length; scan++) {
            if (data[scan] > data[min]) min = scan;
            swap (data, min, index);
        }
    }
}

private void swap(int[] data, int pos0, int pos1) {
    int temp = data[pos0];
    data[pos0] = data[pos1];
    data[pos1] = temp;
}
Run Code Online (Sandbox Code Playgroud)

输出是:

3 3 4 2 2 2 2 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)

为什么第二大数字无序?

我一直在经历这个,我显然错过了一些东西.

Jig*_*shi 6

你早先关闭if语句

 if (data[scan] > data[min]) min = scan;
            swap (data, min, index);
Run Code Online (Sandbox Code Playgroud)

swap()在较少的if条件下会被调用