深色模式
选择排序
选择排序是将序列 L 分量两部分,前面已排序的序列 L1, 后面未排序的序列 L2, 每次将 L2 中最小的数和 L2 开始第一个元素 交换,因此是一种不稳定的算法。
复杂度分析:
- 时间复杂度:
- 空间复杂度:
js
Array.prototype.selectionSort = function () {
var arr = this.slice(0);
function swap(i, j) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
function sort() {
var len = arr.length;
for (var i = 0; i < len - 1; i++) {
let min = i
for (var j = i + 1; j < len; j++) {
if (arr[j] < arr[min]) {
min = j;
}
}
if min !== i swap(i, min);
}
}
sort();
return arr;
};
var arr = [2, 1, 2, 3, 5, 1, 6];
console.log(arr.selectionSort());