氣泡排序法是一種簡單的排序演算法。它會重複地走訪待排序的資料列,依序比較相鄰的兩個元素,若順序錯誤則交換,直到整個資料列有序為止。
| 項目 | 複雜度 | 說明 |
|---|---|---|
| 最壞時間複雜度 | O(n²) | 陣列完全反向排序時 |
| 平均時間複雜度 | O(n²) | 隨機排序的情況 |
| 最佳時間複雜度 | O(n) | 陣列已排序時 |
| 空間複雜度 | O(1) | 只需常數大小的額外空間 |
function bubbleSort(arr) {
const n = arr.length;
for (let i = 0; i < n - 1; i++) {
let swapped = false;
for (let j = 0; j < n - i - 1; j++) {
// 比較相鄰元素
if (arr[j] > arr[j + 1]) {
// 交換
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
swapped = true;
}
}
// 如果本輪未交換,排序完成
if (!swapped) break;
}
return arr;
}