选择排序
1. 算法步骤
假设第一个数最小,取其索引,索引命名为min,将索引min和其他数依次进行比较
当被比较的数更小,将索引min改成这个更小的数的索引,继续比较
直到将最小的数找出来
将最小的数和第一个数,交换位置!
然后开始从第二个数开始比较,将剩余的最小数交换到第二个位置
以此类推
2. 动图演示

3.代码演示
js
let array = [5,5,9,3,1,5,7,3,1,3,5,3,1,3,55,3,4,8]
// 选择排序函数
function selectSort (arr) {
// 开始遍历数组,从索引0到最后
for (let i = 0; i < arr.length - 1; i++) {
// 假定最小的数的是-每次遍历的第一个
// 设定最小数的索引
let minIndex = i
// 开始遍历索引i后面的数字
for (let j = i + 1; j < arr.length; j++) {
// 如果数字比 - 最小数 - 还要小,那么最小数的索引就改成当前的j
if (arr[j] < arr[minIndex]) {
minIndex = j
}
}
// 内部遍历完成,将‘最小数’和‘索引i的数’交换位置
let temp = arr[i]
arr[i] = arr[minIndex]
arr[minIndex] = temp
// 每次遍历,看看变化
console.log(arr);
}
}
selectSort(array)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
4.总结
选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。