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)排序算法之 选择插入冒泡希尔排序 及 优化

数据结构图解七大排序

javascript实现冒泡排序及优化

排序算法冒泡选择排序的Python实现及算法优化详解

插入排序(直接插入排序折半插入排序希尔排序的算法思想及代码实现)

插入排序算法详解及代码实现