JavaScript实现插入排序及优化
Posted 十九万里
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript实现插入排序及优化相关的知识,希望对你有一定的参考价值。
插入排序基础原理:
把整个数组分为两部分,一部分是排序好的,另外一部分是没有排序好的,每次都从未排序中的数列中拿一个数,插入到已经排序的数组中。直到未排序的数组长度为0.
核心思想其实就是扑克牌思想:自己有几张排列好大小顺序的扑克牌,如果是比左边的小就放左边,依次比较,可以放右边或者放中间。
在排序开始前,先从第一个数组开始计算是否顺序正确 不正确从第一个开始排列,正确的话可是直接使用排序正确的数组。
代码实现:
// 插入排序
function insertSort(array){
let length = array.length;
// 如果不是数组或者数组长度小于1.直接返回,不需要排序
if(!Array.isArray(array) || length <= 1)return;
// 循环1 开始,0位置默认的已排序的序列
for (let i = 1; i < length; i++){
let temp = array[i];//保存当前需要排序的元素
let j= i;
// 在当前已排序序列中比较,如果比需要排序的元素大,就一次往后面移动
while (j - 1 >= 0 && array[j - 1] > temp) {
array[j] = array[j - 1];
j--;
}
// 将找到的位置插入元素
array[j] = temp;
}
return array;
}
以上是关于JavaScript实现插入排序及优化的主要内容,如果未能解决你的问题,请参考以下文章
挖掘算法中的数据结构:O(n^2)排序算法之 选择插入冒泡希尔排序 及 优化