掌握算法,先理解原理

选择排序(Selection-sort)
是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
,然后,再从剩余未排序元素
中继续寻找最小(大)元素,然后放到已排序序列的末尾
。以此类推,直到所有元素均排序完毕。
n个记录的直接选择排序可经过n-1
趟直接选择排序得到有序结果
n-1趟结束,数组有序化了。
var array = [11, 43, 24, 76, 89, 43, 65]
function selectionSort(arr) {
var len = arr.length
var minIndex, temp
for (var i = 0; i < len - 1; i++) { //跑`n-1`趟
minIndex = i
for (var j = i + 1; j < len; j++) { //每一趟遍历找最小元
if(arr[j] < arr[minIndex]) { //找到最小值
//参考冒泡排序中的交换位置
temp = arr[minIndex]
arr[minIndex] = arr[j]
arr[j] = temp
}
}
}
return arr
}
selectionSort(array)
console.log(array) //[ 11, 24, 43, 43, 65, 76, 89 ]
上面可以发现,选择排序
中每一次找最小元都要遍历一次,那么如何优化算法,最快速度找到最小元?
我们知道,最小堆的根节点一定是最小值,接下来有了 ----- 堆排序算法
网友评论