前端算法之插入排序

3、插入排序(Insertion Sort)

插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

3.1 算法描述

一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:

  • 从第一个元素开始,该元素可以认为已经被排序;

  • 取出下一个元素,在已经排序的元素序列中从后向前扫描;

  • 如果该元素(已排序)大于新元素,将该元素移到下一位置;

  • 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;

  • 将新元素插入到该位置后;

  • 重复步骤2~5。

    function insertionSort(arr) {

    复制代码
      var len = arr.length;
    
    
      var preIndex, current;
    
    
      for (var i = 1; i < len; i++) {
    
    
          preIndex = i - 1;
    
    
          current = arr[i];
    
    
          while (preIndex >= 0 && arr[preIndex] > current) {
    
    
              arr[preIndex + 1] = arr[preIndex];
    
    
              preIndex--;
    
    
          }
    
    
          arr[preIndex + 1] = current;
    
    
      }
    
    
      return arr;

    }

相关推荐
python_tty3 分钟前
排序算法(一):冒泡排序
数据结构·算法·排序算法
皮蛋sol周38 分钟前
嵌入式学习C语言(八)二维数组及排序算法
c语言·学习·算法·排序算法
森焱森1 小时前
单片机中 main() 函数无 while 循环的后果及应对策略
c语言·单片机·算法·架构·无人机
平和男人杨争争1 小时前
机器学习12——支持向量机中
算法·机器学习·支持向量机
10岁的博客2 小时前
代码编程:一场思维与创造力的革命
开发语言·算法
Aczone282 小时前
嵌入式 数据结构学习 (六) 树、哈希表与内核链表
数据结构·学习·算法
定偶2 小时前
进制转换小题
c语言·开发语言·数据结构·算法
体系结构论文研讨会3 小时前
多项式环及Rq的含义
算法
智驱力人工智能3 小时前
极端高温下的智慧出行:危险检测与救援
人工智能·算法·安全·行为识别·智能巡航·高温预警·高温监测
森焱森3 小时前
60 美元玩转 Li-Fi —— 开源 OpenVLC 平台入门(附 BeagleBone Black 驱动简单解析)
c语言·单片机·算法·架构·开源