【发布时间】:2014-03-06 10:57:24
【问题描述】:
我正在尝试使用基于插入的排序算法对大型数据文件进行排序,代码运行良好,但输出不正确。我一遍又一遍地研究它完全没有用,有人能看出我哪里出错了吗?
public void sort(Comparable[] items) {
for (int i = 1; i < items.length; i++) {
Comparable temp = items[i];
int j = i - 1;
while (j >= 0 && items[j].compareTo(items[j]) > 0) {
items[j + 1] = items[j];
j = j - 1;
}
items[j] = temp;
}
}
我制作的一个示例数据文件是...
2
1
3
5
9
6
7
4
8
显然输出应该是 1,2,3,4... - 但我得到的是 1 3 5 9 6 7 4 8 8
【问题讨论】:
-
您能展示一个您尝试排序的示例测试用例吗?
-
不应该是items[j + 1] = temp吗?
-
和预期/实际输出..
-
你为什么要自己实现排序?它是锻炼的一部分吗?还是您真的只需要对数据文件进行排序?如果是这样,请考虑 Sort 的标准实现
-
这是卢卡斯的一部分。
标签: java algorithm sorting insertion-sort