上一篇文章我们讲了选择排序,这次我们来讲一下插入排序。
中心思想
给定一个数组A,从数组的第二项开始向前比较,较小的项排在前面。这个操作有点类似扑克牌,在合适的位置里插入特定的数值。
代码实现
function insertSort(arr){
// 从第2项开始向前比较
for (let index = 1; index < arr.length; index++){
let curIndex = index;
// 因为随着index的增加,它前面的数据项会非常的多,因为需要遍历之前的数据项,找到最合适的插入位置
while(curIndex >= 1 && arr[curIndex] < arr[curIndex-1]){
[ arr[curIndex], arr[curIndex - 1] ] = [ arr[curIndex - 1], arr[curIndex] ];
curIndex--;
}
}
return arr;
}
最后
好啦,本期的插入排序到这里就结束啦,下期我们讲《冒泡、选择、插入三种算法的对比》,886~~