Java:冒泡排序不知何故不起作用

时间:2013-04-28 20:43:31

标签: java arraylist bubble-sort

好的,这真的很尴尬,但我有一个冒泡排序似乎并不是每次都对数据进行完全排序。我甚至在纸上都已经过了,但我发现它没有任何问题。 (下面应该将偏移量排在左侧,将最小值排在右侧。

 //Sort multiplicity by number of each card, bubble sort
        int out, in;
        for (out = multi.size() - 1; out > 1; out--) {
            for (in = 0; in < out; in++) {
                if (multi.get(in).getValue() < multi.get(in + 1).getValue()) {
                    CardMultiplicity temp = multi.get(in);
                    multi.set(in, multi.get(in+1));
                    multi.set(in+1, temp);
                }
            }
        }

注意:multi是特定类型的Arraylist,在这里不重要。 一般来说,我几乎整理了它,但似乎它有时是一次短路。这里缺少什么?

2 个答案:

答案 0 :(得分:4)

在你的循环中:

for (out = multi.size() - 1; out > 1; out--) {

你应该改变:

out > 1

致:

out > 0

答案 1 :(得分:1)

第一个循环运行直到out <1,因此它没有到达第0行,因为内循环也运行到out值。需要更正。

for (out = multi.size() - 1; out > 0; out--)//should do the trick