選擇排序法是一種簡單直觀的排序演算法。它每次都從未排序的數列中找出最小(或最大)的元素,然後將其放到已排序數列的末尾。
這個過程會重複進行,直到整個數列都被排序完成為止。選擇排序的名稱來自於它每一輪都「選擇」出最小的元素,因此稱為「選擇排序」。
| 情境 | 時間複雜度 (Time Complexity) | 空間複雜度 (Space Complexity) |
|---|---|---|
| 最佳情況 (Best Case) | O(n²) - 始終需要進行完整的比較 | O(1) - 只需要一個常數空間來做交換 |
| 平均情況 (Average Case) | O(n²) | |
| 最壞情況 (Worst Case) | O(n²) - 無論數列順序如何 |
* 穩定性 (Stability):不穩定 (Unstable),因為值相同的元素的相對位置在排序過程中可能改變。
點擊「開始排序」觀察選擇排序的過程。紅色代表正在尋找最小值,綠色代表已經排序完成。