Java代码:
public static NHLList bubbleSort(NHLList players) {
for (int i = 0; i < players.size(); i++) {
for (int j = 0; j < players.size()-1; j++) {
if (players.get(j).getPoints() < players.get(j+1).getPoints()) {
PlayerRecord tempPlayer = players.get(j);
players.set(players.get(j+1), j);
players.set(tempPlayer, j+1);
}
}
}
return players;
}
如果我将j < ...
更改为j > ...
,结果列表不是倒置的前一个列表,但我认为它应该是。它正在做的只是阅读数字。
答案 0 :(得分:5)
卷起袖子
你在错误的一行反转了这个标志。
答案 1 :(得分:1)
正如其他人所指出的那样,请指定您正在编辑的行。如果您正在编辑的行权,那么你可能会不高兴听到,这是不实际执行 BubbleSort
。
您实际上正在执行列表n
次的完整扫描,在某些情况下,这可能会导致排序列表,但实际上并不是BubbleSort
的全部内容。我建议你研究你的代码并尝试自己解决为什么你的循环计数器i
永远不会在代码中被引用(除了在循环控制中)。