冒泡排序(Bubble Sort)
冒泡排序,有時也被稱做沉降排序,是一種比較簡單的排序算法。這種算法的實(shí)現(xiàn)是通過遍歷要排序的列表,把相鄰兩個不符合排列規(guī)則的數(shù)據(jù)項交換位置,然后重復(fù)遍歷列表,直到不再出現(xiàn)需要交換的數(shù)據(jù)項。當(dāng)沒有數(shù)據(jù)項需要交換時,則表明該列表已排序。
冒泡排序(Bubble Sort)
復(fù)雜度
算法 | 最好情況 | 平均情況 | 最壞情況 | 空間復(fù)雜度 | 穩(wěn)定性 |
---|---|---|---|---|---|
冒泡排序 | O(n) | O(n2) | O(n2) | O(1) | 穩(wěn)定 |
ES6實(shí)現(xiàn)
- 普通版冒泡排序
function BubbleSort(array) {
let len = array.length;
for (let i = 0; i < len; i++) {
for (let j = 0; j < len-i-1; j++) {
if (array[j]> array[j+1]) {
[array[j],array[j+1]] = [array[j+1],array[j]];
}
}
}
return array;
}
- 優(yōu)化版冒泡排序
function BubbleSort(originalArray) {
const array = [...originalArray];
let swapped;
for (let i = 0; i < array.length; i++) {
swapped = true;
for (let j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j+1]) {
[array[j],array[j+1]] = [array[j+1],array[j]]
swapped = false;
}
}
if (swapped) {
break;
}
}
return array;
}
參考
相關(guān)閱讀
JavaScript的排序算法——冒泡排序
JavaScript的排序算法——選擇排序
JavaScript的排序算法——插入排序
JavaScript的排序算法——?dú)w并排序
JavaScript的排序算法——快速排序