当前位置: 首页 > 知识库问答 >
问题:

Java气泡排序仅返回部分排序

查修谨
2023-03-14

我是Java新手,所以一直在尝试将一些旧的JS练习翻译成Java。

class BubbleSort{
public static void main(String args[]){

int nums [] = {5, 4, 6, 3, 12, 1};


Boolean swap = true;
while(swap){
    swap = false;
    for(int i = 1; i<nums.length ; i++){
        if (nums[i - 1] > nums[i]){
            int t = nums[i-1];
            nums[i-1] = nums[i];
            nums[i] = t;
            swap = true;
        }else{
            swap = false;
        }
    }
}

System.out.print("Sorted: ");
for(int j=0 ; j<nums.length ; j++)
System.out.print(nums[j] + " ");
}
}

共有1个答案

云光明
2023-03-14

只需删除代码中的else块(如下面的代码示例所示)。一件东西没有订购,你就得再做一次掉期。

在您的代码中,只有当最后一个项目的顺序不对时,才会进行另一个交换。如果数组的末尾排序得太快,则排序结束得也太快。

class BubbleSort{
    public static void main(String args[]){

        int nums [] = {5, 4, 6, 3, 12, 1};

        Boolean swap = true;
        while(swap){
            swap = false;
            for(int i = 1; i<nums.length ; i++){
                if (nums[i - 1] > nums[i]){
                    int t = nums[i-1];
                    nums[i-1] = nums[i];
                    nums[i] = t;
                    swap = true;
                }/* else{
                    swap = false;
                }*/
            }
        }

        System.out.print("Sorted: ");
        for(int j=0 ; j<nums.length ; j++)
            System.out.print(nums[j] + " ");
    }
}
 类似资料:
  • 所以我的代码有问题。我必须编写一个程序来对一个外部文本文件进行排序(基本上是一个按随机顺序排列的随机数列表)。所以我试着按照教授的步骤去做,即使我做了,我也没有得到正确的输出。输出应该如下所示: 1 2 2 2 3 3 5 5 6 6 11 13 13 13 13 16 17 17 19 25 27 27 33 34 37 37 43 45 49 51 52 54 57 58 60 63 64 6

  • 嗨,我用冒泡排序查看了其他帖子,但解决方案在我的例子中不起作用:所以算法在我循环时重复了几次之后才起作用。但我如何在不使用输入的情况下做到这一点?这是我的代码,你知道我的意思:

  • 我需要使用气泡排序法按名称对我的杂货库存进行排序。 显然,我的代码不是按名字排序的 顺便说一句,库存存储的数据来自文件输入。 这是我的代码。 这是我的比较方法从我的超类(杂货店项目)

  • 本文向大家介绍气泡排序在Go Lang,包括了气泡排序在Go Lang的使用技巧和注意事项,需要的朋友参考一下 冒泡排序是一种排序算法,它通过交换顺序错误的元素来工作。在多次遍历中,它检查相邻元素的顺序是否正确(递增)。 冒泡排序的时间复杂度为O(n ^ 2),因为它需要两个嵌套循环才能检查相邻元素。 例如,让我们看下面的未排序数组- 冒泡排序算法首先遍历整个数组,然后在另一个循环中检查相邻元素是

  • 冒泡排序(Bubble Sort)是常用的数组排序算法之一,它以简洁的思想与实现方法而备受青睐,也是广大学习者最先接触的一种排序算法。 冒泡排序的基本思想是:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素值移动到数组前面,把大的元素值移动到数组后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。 冒泡排序的算法比较简单,排序的结果稳定,但时间效率不太高。 Java

  • 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出现的感觉一样,每次都在第一页第一位