【问题标题】:Bubble sort algorithm in Java [closed]Java中的冒泡排序算法[关闭]
【发布时间】:2013-06-07 12:20:29
【问题描述】:

我的冒泡排序算法有问题。我试图找到解决方案,但我不能解决我的问题。

这是代码的排序部分

    for (int i = values.length - 1; i > 1; i--) {
        for (int j = 0; j < i; j++) {
            if (values[j] > values[(j + 1)]) {
                int temp = values[i];
                values[i] = values[j];
                values[j] = temp;
            }
        }
    }

编辑:这是工作代码

    for (int i = values.length - 1; i > 0; i--) {
        for (int j = 0; j < i; j++) {
            if (values[j] > values[(j + 1)]) {  //Check if sort is needed
                int temp = values[j];
                values[j] = values[j+1];
                values[j+1] = temp;
            }
        }
    }

【问题讨论】:

  • 问题是什么?你试过调试吗?
  • 问题是它没有正确排序。

标签: java arrays algorithm sorting


【解决方案1】:

您应该切换项目 j 和 j+1 而不是 j 和 i。请注意,您比较了values[j] &gt; values[j+1],但将values[j] 与values[i] 进行了比较。

【讨论】:

  • 非常感谢这解决了问题。
【解决方案2】:

您正在交换不同的索引,然后是您比较的索引。我认为您的错误可以通过更改以下几行来解决:

int temp = values[j+1];
values[j+1] = values[j];
values[j] = temp

【讨论】:

    猜你喜欢
    • 2011-11-22
    • 2013-09-04
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多