在时间复杂度上表现最稳定的排序算法之一,因为无论什么数据进去都是O(n²)的时间复杂度。。。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。
function selectionSort(arr) {
var len = arr.length;
var minIndex, temp;
//定义最小值下标,定义中间变量
for (var i = 0; i < len - 1; i++) {
minIndex = i;
//默认最开始最小值为,最左侧第一位数即i
for (var j = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) { //寻找最小的数
minIndex = j; //将最小数的索引保存
}
}
temp = arr[i];//中间变量为默认的最小值即最左侧第一位(假设的最小值)
arr[i] = arr[minIndex];//赋值为真正的最小值,arr[minIndex]
arr[minIndex] = temp;
//将查到最小值的位置上的数进行赋值,改为默认的最小值(即一开始最左端第一位假设的最小值)
}
return arr;
}