1. 程式人生 > 其它 >手寫JS面試題 --- 氣泡排序

手寫JS面試題 --- 氣泡排序

手寫JS面試題 --- 氣泡排序 -- 時間複雜度 n^2

題目描述:實現一個氣泡排序

實現程式碼如下:

最佳實踐應該是在函式中加上型別判斷傳入的引數是否為一個數組!

    function bubbleSort(arr) {
        // 快取陣列長度
        const len = arr.length;
        // 外層迴圈用於控制從頭到尾的比較 + 交換到底有多少輪
        for (let i = 0; i < len; i++) {
            // 內層迴圈用於完成每一輪遍歷過程中的重複比較 + 交換
            for (let j = 0; j < len - 1; j++) {
                // 若相鄰元素前面的數比後面的大
                if (arr[j] > arr[j + 1]) {
                    // 交換兩者
                    [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
                }
            }
        }
        // 返回陣列
        return arr;
    }

    console.log(bubbleSort([5, 6, 1, 2, 3, 4])); // [1, 2, 3, 4, 5, 6]

請忽略下面的內容

【投稿說明】
部落格園是面向開發者的知識分享社群,不允許釋出任何推廣、廣告、政治方面的內容。
部落格園首頁(即網站首頁)只能釋出原創的、高質量的、能讓讀者從中學到東西的內容。
如果博文質量不符合首頁要求,會被工作人員移出首頁,望理解。如有疑問,請聯絡[email protected]

【投稿說明】
部落格園是面向開發者的知識分享社群,不允許釋出任何推廣、廣告、政治方面的內容。
部落格園首頁(即網站首頁)只能釋出原創的、高質量的、能讓讀者從中學到東西的內容。
如果博文質量不符合首頁要求,會被工作人員移出首頁,望理解。如有疑問,請聯絡[email protected]