氣泡排序法是一種簡單的排序演算法。它會重複地走訪要排序的數列,一次比較兩個相鄰的元素。如果它們的順序錯誤(例如:前面的大於後面的),就把牠們交換過來。
這個過程會重複進行,直到沒有再需要交換的元素為止。因為越大的元素會經由交換,慢慢「浮」到數列的頂端(最後面),就像水中的氣泡浮到水面一樣,故得名「氣泡排序」。
| 情境 | 時間複雜度 (Time Complexity) | 空間複雜度 (Space Complexity) |
|---|---|---|
| 最佳情況 (Best Case) | O(n) - 數列已排序,加上提早結束標記(Flag) | O(1) - 只需要一個常數空間來做交換 |
| 平均情況 (Average Case) | O(n²) | |
| 最壞情況 (Worst Case) | O(n²) - 數列剛好是反向排序 |
* 穩定性 (Stability):穩定 (Stable),因為值相同的元素不會交換位置。
點擊「開始排序」觀察氣泡排序的過程。紅色代表正在比較,綠色代表已經排序完成。