氣泡排序法(Bubble Sort)

← 回到首頁

氣泡排序法原理

氣泡排序法是一種簡單的排序演算法。它會重複地走訪待排序的資料列,依序比較相鄰的兩個元素,若順序錯誤則交換,直到整個資料列有序為止。

操作步驟

  1. 從頭到尾依序比較相鄰的兩個元素。
  2. 如果前一個元素比後一個大,則交換它們。
  3. 每一輪結束後,最大的元素會被移到最右邊。
  4. 重複上述步驟,直到沒有需要交換的元素。

時間與空間複雜度

項目 複雜度 說明
最壞時間複雜度 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; }

排序動畫演示

600ms
比較次數 0
交換次數 0
已完成輪數 0
陣列大小 8