【问题标题】:Bubble Sort Algorithm冒泡排序算法
【发布时间】:2017-04-27 21:26:18
【问题描述】:

我正在研究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));
} 

【问题讨论】:

标签: java sorting bubble-sort


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    根据 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

    “它通过交换无序的相邻元素反复工作”,您的也是如此。

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

    【讨论】:

      猜你喜欢
      • 2016-03-19
      • 2013-09-04
      • 2013-11-02
      • 2016-11-01
      • 2015-01-17
      • 2013-03-08
      • 2021-03-24
      • 2018-02-08
      • 1970-01-01
      相关资源
      最近更新 更多