-4

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

这是代码的排序部分

    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;
            }
        }
    }
4

2 回答 2

6

您应该切换项目jj+1不是jand i。请注意,您进行了比较values[j] > values[j+1],但values[j]values[i].

于 2013-06-07T12:23:04.703 回答
0

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

int temp = values[j+1];
values[j+1] = values[j];
values[j] = temp
于 2013-06-07T12:24:04.737 回答