根據維基百科:
冒泡排序又稱為泡式排序,是一種簡單的排序算法。它重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的頂端。
冒泡排序的算法穩定性:穩定排序算法。
時間復雜度:O(n^2)。
冒泡排序的思想是,比較相鄰兩個數,如果前者大于后者,就把兩個數的位置相互交換;如此這般,第一輪就可以選出一個最大的數放在最后面;經過n-1輪就可以完成所有數的排序。
function bubbleSort (arr) {
var len = arr.length
while (len > 0) {
for (var i = 0; i < len - 1; i++) {
if (arr[i] > arr[i + 1]) {
var temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
}
len--
}
return arr
}
或者:
function bubleSort (arr) {
const len = arr.length
let tempVal
for (let i = len; i > 0; i--) {
for (let j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
tempVal = arr[j]
arr[j] = arr[j+1]
arr[j+1] = tempVal
}
}
}
}
假定數組長度為n,可以看到,一共會執行n(n-1) + (n-1)(n-2) + … + (2)*(1)次循環。






