我试图让这个排序算法对数组中的最大到最小进行排序。这是我拥有的:
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
为什么第二大数乱序了?
我一直在研究这个,但我显然遗漏了一些东西。
最佳答案
您正在关闭 if 声明
if (data[scan] > data[min]) min = scan;
swap (data, min, index);
swap()
将被调用而不考虑 if
条件
关于java - 从最大到最小的排序 - 最大的是无序的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24445262/