【问题标题】:Java: Bubble sort somehow not workingJava:冒泡排序不知何故不起作用
【发布时间】:2013-04-22 11:15:36
【问题描述】:

好的,这真的很尴尬,但我有一个冒泡排序,似乎每次都没有对数据进行完全排序。我什至在纸上都看过它,但我找不到任何问题。 (下面应该把大的排在左边,最小的排在右边。

 //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,在这里应该不重要。 一般来说,我几乎把它整理好了,但有时它似乎是短了一个。这里有什么遗漏吗?

【问题讨论】:

    标签: java arraylist bubble-sort


    【解决方案1】:

    在你的循环中:

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

    你应该改变:

    out &gt; 1

    收件人:

    out &gt; 0

    【讨论】:

    • 嘿嘿嘿嘿,我知道这很简单,但我想我太沉浸在代码中看不到它。谢谢!
    • 没有什么比尝试后不问更愚蠢的了 :) 发生这种情况.. 编译器在这些情况下可能会有所帮助。
    【解决方案2】:

    第一个循环一直运行到 out

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      • 2014-03-16
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多