- 分已排和未排两个区间
- 从未排区间找到最小元素放到已排的末尾
function selectSort(arr){const len = arr.length;for(let i=0;i<len;i++){let min = i;for(let j=i+1;j<len;j++){if(arr[j]<arr[i]){min = j;}}[arr[i],arr[min]] = [arr[min],arr[i]];}}
- 空间O(n),原地排序
- 平均、最好、最坏都是O(n)
- 因为每次找最小值时候,相同值可能会交还位置,不是稳定排序
