冒泡排序

基本思想

比较每两个相邻记录的关键字,如果反序则交换

时间复杂度

最好的情况是 O(n)
最坏的情况是 O(n^2)
平均时间复杂度是 O(n^2)

冒泡排序算法的过程如下:(从后往前进行,得到递减数组)

  1. 比较相邻的两个元素。如果后一个比前一个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从第一对到最后一对。最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了已排好顺序的。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

javascript 实现

     function bubbleSort(arr) {
        var temp, n = arr.length;
        for (var i = n; i > 0; --i) {
            for (var j = 0; j < i - 1; j++) {
                if (arr[j] < arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        return arr;
    }

    var arr = [3, 2, 4, 9, 1, 5, 7, 6, 8];
    var arrSorted = bubbleSort(arr);
    console.log(arrSorted);//9, 8, 7, 6, 5, 4, 3, 2, 1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、算法简介 冒泡排序(Bubble Sort)是一种计算机科学最简单的排序算法之一。 它通过重复地走访要排序的数...
    likly阅读 615评论 0 0
  • 文 | 莫若吻 一、简介 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。这个算法的名...
    Promise_Sun阅读 936评论 3 15
  • 冒泡排序插入排序插入排序和冒泡排序分析 冒泡排序 冒泡排序(英语:Bubble Sort,台湾另外一种译名为:泡沫...
    六尺帐篷阅读 2,205评论 0 9
  • 概念 冒泡排序(Bubble Sort):重复地循环要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换...
    AceKitty阅读 195评论 0 0
  • 一 、算法介绍 (1)算法概述 排序算法有很多,其中最简单直接的就是冒泡啦。冒泡排序(Bubble Sort)是一...
    FifiZhuang阅读 257评论 0 0