冒泡排序應該是絕大多數coder第一個接觸到的排序算法了,冒泡排序最容易理解,確實適合作爲入門算法,它是一種簡單直觀的排序算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序(從小到大,或者從大到小)錯誤就把他們交換過來,對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大(或最小)的數。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。
請看動圖演示:
接下來再用js代碼實現該算法:
function bubbleSort(arr) {
var len = arr.length;
len -= 1;
for (let i = 0; i < len; i++) {
for (let j = 0; j < len - i; j++) {
if (arr[j] > arr[j+1]) { // 相鄰元素兩兩對比
let temp = arr[j+1]; // 元素交換
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}