排序
- 排序:把某个乱序的数组变成升序或降序的数组 (这里用数组来做举例)
选择排序
- 该排序属于 贪心 策略
- 关注的是局部,是一种苟且的东西
算法实现
Array.prototype.selectionSort = function() {let len = this.length;for(let i=0; i<len-1; ++i) {let minIndex = i; for(let j=i;j<len;++j) {if(this[j] < this[minIndex]) {minIndex = j; }}if(i !== minIndex) {[this[i], this[minIndex]] = [this[minIndex], this[i]]; }}
}let arr = [5,4,3,2,1]
arr.selectionSort()
console.log(arr);
- 性能不好,比较简单,贪心
- 找到数组中最小值,选中它并将其放置于第一位(第一轮)
- 接着找到第二小的值,选中它并将其放置在第二位(第二轮)
- …
- 以此类推,执行n-1轮
- 注意,每一轮比较完毕,前面的都是有序的,可以跳过,不再比较
- 时间复杂度