选择排序
1
选择排序是一种简单直观的排序方法,时间复杂度O(n²),所以使用的时候,数据规模越小越好。
算法步骤
1
2
3首先从未排序序列中找到最小(大)元素,存放到已排序序列的起始位置。
再从剩余未排序元素中继续寻找最小(大)元素,存放到已排序序列的末尾。
重复第二步,直到所有元素均排序完毕
动图演示
Js实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19function selectionSort(arr) {
var len = arr.length;
var minIndex, temp;
for (var i = 0; i < len - 1; i++) {
minIndex = i;
for (var j = i + 1; j < len; j++) {
// 寻找最小的数,将最小数的索引保存
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex !== i) {
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
return arr;
}Go实现
1
2
3
4
5
6
7
8
9
10
11
12
13func selectionSort(arr[]int)[]int {
length:= len(arr)
for i := 0; i < length - 1; i++ {
min:= i
for j := i + 1; j < length; j++ {
if arr[min] > arr[j] {
min = j
}
}
arr[i], arr[min] = arr[min], arr[i]
}
return arr
}