冒泡排序算法

时间:2017-04-27 21:26:18

标签: java sorting bubble-sort

我正在研究bubblesort并在学习之后提出了这个代码。几乎网络上的每个代码都与我的不同。但我的工作没有问题。

你能告诉我我做错了吗?

int[] a= {23,1,5,12,1,2,3};

for (int i=0; i<a.length; i++) {

    for (int j=1; j<a.length; j++) {

        if(a[j]<a[j-1]) {

            int temp=a[j];

            a[j]=a[j-1];

            a[j-1]=temp;
        }
    }

    System.out.println(Arrays.toString(a));
} 

2 个答案:

答案 0 :(得分:1)

这在技术上是正确的但不是最佳的。您提到的其他解决方案可能包括一个布尔值,以确保列表在进一步之前尚未排序。无论如何,您的版本都将执行O(n ^ 2)次迭代,即使输入已经排序。

答案 1 :(得分:0)

根据Corman的文件:

https://books.google.com/books?id=aefUBQAAQBAJ&lpg=PA40&ots=dMbqQt0QiW&dq=Introduction%20to%20Algorithms%20corman%20bubble%20sort&pg=PA40#v=onepage&q=Introduction%20to%20Algorithms%20corman%20bubble%20sort&f=false

&#34;它可以通过交换相邻的无序排列的元素来重复工作,这也是你所做的。

正如书中所提到的,它不是最优的解决方案,但它在O(n ^ 2)时间内完成。你如何实施完全取决于你,但如果我要评分,我会给你充分的信任!