表现最稳定的排序算法之一,因为无论什么数据进去都是 O(n²) 的时间复杂度,所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。理论上讲,选择排序可能也是平时排序一般人想到的最多的排序方法了吧。
function selection(arr) {
var minIndex;
for (var i = 0; i < arr.length; i += 1) {
minIndex = i;
for (var j = i; j < arr.length - i; j += 1) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
var temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
function selection(arr) {
var minIndex;
for (var i = 0; i < arr.length; i += 1) {
minIndex = i;
for (var j = i; j < arr.length - i; j += 1) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex !== i) {
var temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}