冒泡排序應該算是排序算法中最簡單排序算法之一。算法
算法分析: 所謂冒泡,形象上來講就像是水裏的氣泡同樣,越接近水面,氣泡越大。那對於咱們的數據來講,首先咱們對集合進行遍歷,而後對比相鄰的兩個元素,若是第一個元素比第二個元素大,則進行交換。這樣一輪比較完畢,在集合最末尾的元素必定是最大的。依次類推,再來對除了最末尾的元素以外的元素進行比較,第二輪事後,倒數第二個元素就是第二大的元素,一直重複以上的過程直到所有排序完畢。
輸入 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]] } } } }
以上的排序方法只處理了數組內容是數值的狀況。若是數組裏的元素是其餘類型的數據,則須要在對元素進行兩兩比較處進行處理。排序