選擇排序(Selection Sort)基本思想
:
是一種原址排序法;
將數組分為兩個區間:左側為已排序區間,右側為未排序區間。每趟從未排序區間中選擇一個值最小的元素,放到已排序區間的末尾,從而將該元素劃分到已排序區間。

代碼實現
function selectSort(arr) {const len = arr.length;let indexMin = 0;for (let i = 0; i < len - 1; i++) {indexMin = i;for (let j = i; j < len; j++) {if (arr[indexMin] > arr[j]) {indexMin = j;}}if (i != indexMin) {swap(arr, i, indexMin);}}return arr;
}function swap(arr, i, j) {const temp = arr[i];arr[i] = arr[j];arr[j] = temp;
}
復雜度
- 時間復雜度O(1),只用到了幾個輔助的常量,i,j及最小位置minIndex
- 空間復雜度O(n2)
代碼測試
const arr = [10,23,4,5,49,123,456]const res = selectSort(arr)console.log("🚀 ~ res:", res)