選擇排序法(Selection Sort)

← 回到首頁

選擇排序法原理

選擇排序法是一種簡單的排序演算法。它會在未排序的序列中找到最小(或最大)元素,存放到排序序列的起始位置,然後再從剩餘未排序元素中繼續尋找最小元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

操作步驟

  1. 從未排序的序列中,找到最小的元素。
  2. 將這個最小元素與未排序序列的第一個元素交換位置。
  3. 重複上述步驟,直到所有元素都排序完畢。

時間與空間複雜度

項目 複雜度 說明
最壞時間複雜度 O(n²) 無論輸入資料如何
平均時間複雜度 O(n²) 隨機排序的情況
最佳時間複雜度 O(n²) 即使已排序也需完整比較
空間複雜度 O(1) 只需常數大小的額外空間

選擇排序法演算法代碼

function selectionSort(arr) { const n = arr.length; for (let i = 0; i < n - 1; i++) { let minIndex = i; // 找到未排序部分的最小元素索引 for (let j = i + 1; j < n; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } // 將最小元素交換到第 i 個位置 if (minIndex !== i) { [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]]; } } return arr; }

排序動畫演示

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