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

时间:2014-06-27 06:24:16

标签: java algorithm sorting

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

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;
}

输出是:

3 3 4 2 2 2 2 1 1 1 1 1 1

为什么第二大数字无序?

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

1 个答案:

答案 0 :(得分:6)

如果先前声明

,你正在关闭
 if (data[scan] > data[min]) min = scan;
            swap (data, min, index);

swap()将被调用,而不是if条件

相关问题