https://www.runoob.com/w3cnote/selection-sort.html
-
思路
选择排序的实现思路是从未排序序列中找到最小的元素,放到已排序序列的末尾,重复上述步骤,直到所有元素排序完毕。 -
具体
1)假设未排序序列的第一个是最小值,记下该元素的位置,从前往后比较
2)若某个元素比该元素小,覆盖最小值的位置
3)重复第二个步骤,直到找到未排序的末尾
4)将未排序元素的第一个元素和最大元素交换位置
5)重复前面几个步骤,直到所有元素都已经排序。
-
代码实现
let selectSort = (nums) => {
let len = nums.length
for (let i = 0; i < len; i++) {
let minIndex = i
for (let j = i + 1; j < len; j++) {
if (nums[j] < nums[minIndex]) {
minIndex = j
}
}
let tem = nums[i];
nums[i] = nums[minIndex];
nums[minIndex] = tem
}
return nums
}