我正试图让这种排序算法在数组中从大到小排序。这就是我所拥有的:
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
为什么第二大数字无序?
我一直在经历这个,我显然错过了一些东西。
答案 0 :(得分:6)
如果先前声明
,你正在关闭 if (data[scan] > data[min]) min = scan;
swap (data, min, index);
swap()
将被调用,而不是if
条件