【发布时间】:2016-04-03 02:35:24
【问题描述】:
我正在尝试编写一个修改后的选择排序,它选择最大的数字并将其放在列表的末尾。我遇到了一个问题。代码有点排序列表,但并不完美。这是我运行代码后的结果: 选择排序前:[2, 8, 7, 1, 3, 5, 9, 4, 6] 选择排序后:[1, 2, 8, 7, 3, 4, 5, 9, 6]
这是我的代码:
public static int[] sort(int[] list) {
int i, j, maxNum, maxInde, temp = 0;
for (i = list.length-1; i >= 0; i--) {
maxNum = list[i];
maxInde = i;
for (j = i; j < list.length; j++) {
if (list[j] < maxNum) {
maxNum = list[j];
maxInde = j;
}
}
if (maxNum < list[i]) {
temp = list[i];
list[i] = list[maxInde];
list[maxInde] = temp;
}
}
return list;
}
我不知道问题出在哪里。
【问题讨论】:
-
如果我记得选择排序正确,是不是需要一个额外的数组来存储排序后的数组?
-
我正在交换下面的索引,所以它不需要另一个数组
标签: java arrays sorting selection sorted