十大經典排序算法之冒泡排序--JavaScript 實現

十大經典排序算法之冒泡排序

冒泡排序應該算是排序算法中最簡單排序算法之一。算法

算法分析: 所謂冒泡,形象上來講就像是水裏的氣泡同樣,越接近水面,氣泡越大。那對於咱們的數據來講,首先咱們對集合進行遍歷,而後對比相鄰的兩個元素,若是第一個元素比第二個元素大,則進行交換。這樣一輪比較完畢,在集合最末尾的元素必定是最大的。依次類推,再來對除了最末尾的元素以外的元素進行比較,第二輪事後,倒數第二個元素就是第二大的元素,一直重複以上的過程直到所有排序完畢。

JavaScript 實現

輸入 arr 爲 [12, 32, 1, 4, 5]數組

// 遍歷一次
function bubbleSort(arr = []) {
    for (let i = 0, len = arr.length; i < len - 1; i++) {
        if (arr[i] > arr[i + 1]) {
            [arr[i], arr[i + 1]] = [arr[i + 1], arr[i]]
        }
    }
}

第一次遍歷以後,咱們會獲得以下的結果:[12, 1, 4, 5, 32]
因此咱們只須要再對剩下的[12, 1, 4, 5]進行相同的比較便可。在外層再嵌套一層循環來實現。code

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

以上的排序方法只處理了數組內容是數值的狀況。若是數組裏的元素是其餘類型的數據,則須要在對元素進行兩兩比較處進行處理。排序

相關文章
相關標籤/搜索