在时间复杂度上表现最稳定的排序算法之一,因为无论什么数据进去都是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;
}
本文深入探讨了选择排序算法,尽管其时间复杂度始终为O(n²),在大规模数据中效率较低,但因其不占用额外内存而具有一席之地。选择排序适合于数据规模较小的场景,是理解基础排序算法的一个重要例子。
8082

被折叠的 条评论
为什么被折叠?



