1. 操作原理
選擇排序法透過重複從未排序部分選取最小元素,放置在已排序部分的末尾。每一輪都會找到當前未排序序列中的最小值,並與未排序部分的起始位置交換。
- 第 1 步:從未排序序列中尋找最小元素的位置。
- 第 2 步:將找到的最小元素與未排序序列的起始位置交換。
- 第 3 步:已排序部分增加一個元素,未排序部分減少一個元素。
- 重複:重複上述步驟,直到整個陣列排序完成。
重點:選擇排序是一種不穩定、原地排序的方法。
核心流程為:尋找最小值、交換位置,逐步擴展已排序區域。
4. 偽代碼及實作範例
// 偽代碼
for i := 0 to n - 2
minIdx := i
for j := i + 1 to n - 1
if A[j] < A[minIdx]
minIdx := j
if minIdx != i
swap(A[i], A[minIdx])
// JavaScript 範例
function selectionSort(arr) {
const n = arr.length;
for (let i = 0; i < n - 1; i++) {
let minIdx = i;
for (let j = i + 1; j < n; j++) {
if (arr[j] < arr[minIdx]) {
minIdx = j;
}
}
if (minIdx !== i) {
[arr[i], arr[minIdx]] = [arr[minIdx], arr[i]];
}
}
return arr;
}