1. 操作原理
氣泡排序法透過重複走訪要排序的數列,依序比較相鄰元素,若前者大於後者就交換。每一輪結束時,未排序區間的最大值會像氣泡一樣浮到最右邊。
- 第 1 步:從第一個元素開始,依序比較每一對相鄰元素。
- 第 2 步:若前者比後者大,執行交換;否則保持順序。
- 重複:繼續向右比較,直到本輪掃描結束。
- 提前結束:當某一輪沒有交換時,表示序列已經完全排序,演算法可提早停止。
重點:氣泡排序是一種穩定、原地排序的方法。
核心流程為:比較相鄰元素、交換位置,並讓最大值像氣泡一樣逐步浮到右側。
4. 偽代碼及實作範例
// 偽代碼
for i := 0 to n - 2
swapped := false
for j := 0 to n - i - 2
if A[j] > A[j + 1]
swap(A[j], A[j + 1])
swapped := true
if not swapped
break
// JavaScript 範例
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;
}