为什么当我在冒泡排序算法中反转比较符号时,生成的排序列表不会反转?

时间:2012-10-08 15:15:07

标签: java sorting reverse bubble-sort

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 > ...,结果列表不是倒置的前一个列表,但我认为它应该是。它正在做的只是阅读数字。

2 个答案:

答案 0 :(得分:5)

卷起袖子

你在错误的一行反转了这个标志。

答案 1 :(得分:1)

正如其他人所指出的那样,请指定您正在编辑的行。如果您正在编辑的行权,那么你可能会不高兴听到,这是不实际执行 BubbleSort

您实际上正在执行列表n次的完整扫描,在某些情况下,这可能会导致排序列表,但实际上并不是BubbleSort的全部内容。我建议你研究你的代码并尝试自己解决为什么你的循环计数器i永远不会在代码中被引用(除了在循环控制中)。