冒泡排序

基本思想

比較每兩個(gè)相鄰記錄的關(guān)鍵字,如果反序則交換

時(shí)間復(fù)雜度

最好的情況是 O(n)
最壞的情況是 O(n^2)
平均時(shí)間復(fù)雜度是 O(n^2)

冒泡排序算法的過程如下:(從后往前進(jìn)行,得到遞減數(shù)組)

  1. 比較相鄰的兩個(gè)元素。如果后一個(gè)比前一個(gè)大,就交換他們兩個(gè)。
  2. 對每一對相鄰元素作同樣的工作,從第一對到最后一對。最后的元素應(yīng)該會是最大的數(shù)。
  3. 針對所有的元素重復(fù)以上的步驟,除了已排好順序的。
  4. 持續(xù)每次對越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。

javascript 實(shí)現(xiàn)

     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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、算法簡介 冒泡排序(Bubble Sort)是一種計(jì)算機(jī)科學(xué)最簡單的排序算法之一。 它通過重復(fù)地走訪要排序的數(shù)...
    likly閱讀 672評論 0 0
  • 文 | 莫若吻 一、簡介 冒泡排序(Bubble Sort),是一種計(jì)算機(jī)科學(xué)領(lǐng)域的較簡單的排序算法。這個(gè)算法的名...
    Promise_Sun閱讀 996評論 3 15
  • 冒泡排序插入排序插入排序和冒泡排序分析 冒泡排序 冒泡排序(英語:Bubble Sort,臺灣另外一種譯名為:泡沫...
    六尺帳篷閱讀 2,351評論 0 9
  • 概念 冒泡排序(Bubble Sort):重復(fù)地循環(huán)要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換...
    AceKitty閱讀 215評論 0 0
  • 一 、算法介紹 (1)算法概述 排序算法有很多,其中最簡單直接的就是冒泡啦。冒泡排序(Bubble Sort)是一...
    FifiZhuang閱讀 296評論 0 0

友情鏈接更多精彩內(nèi)容