【发布时间】:2011-06-02 02:59:01
【问题描述】:
(不,这不是家庭作业,我只是发现了错误并认为在这里分享它可能有用)
import java.util.List;
public class BubbleSorter {
public <T extends Comparable<T>> void sort(List<T> list) {
while (true) {
boolean didWork = false;
for (int i = 0; i < list.size() - 1; ++i) {
if (list.get(i).compareTo(list.get(i + 1)) > 0) {
swap(list, i, i + 1);
didWork = true;
break;
}
}
if (!didWork)
return;
}
}
private static <T> void swap(List<T> list, int i, int j) {
T tmp = list.get(i);
list.set(i, list.get(j));
list.set(j, tmp);
}
}
【问题讨论】:
-
为什么要关闭投票?您是否希望我将标题编辑为“此实现中的严重错误是什么?”而是?
-
对我来说看起来不错。那一定是个大坏蛋。
-
@Nikita - 如果需要提示,请联系我。
-
@ripper234 这是算法中的一个真正的错误,还是列表不可修改并且
set方法不起作用? -
@ripper:投票结束是因为这不是一个代码审查网站。我们不会为您调试代码。您向我们展示了您为找到问题所做的工作,我们可以帮助您解决遇到的任何具体问题。您首先需要告诉我们您为什么认为存在错误。
标签: java sorting bubble-sort