zoukankan      html  css  js  c++  java
  • 【JavaScript算法】---插入排序

     一、什么叫做插入排序法

      有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法

    二、核心

      插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序。 插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中
     
    插入排序的原理其实很好理解,可以类比选择排序。选择排序时在两个空间进行,等于说每次从旧的空间选出最值放到新的空间,而插入排序则是在同一空间进行
     
    三、思路
      从第二位数字开始,每一个数字都试图跟它的前一个比较并做交换,并重复这个动作。直到前一个数字不存在或比它小或者相等的时候停下来
     
                                                                              

    四、代码

    var arr = [19,3,22,7,55,9,3,8]
    var temp;
    for(var i=1;i<arr.length;i++){
        var index = i;
        while(index-1>=0 && arr[index - 1] >arr[index]){
            [arr[index],arr[index - 1]] = [arr[index - 1],arr[index]]
    
            index--
        }
    }
    
    
    for(var i=1;i<arr.length;i++){
        var index = i;
        while(index-1>=0 && arr[index - 1] >arr[index]){
           temp = arr[index];
           arr[index] = arr[index-1];
            arr[index-1] = temp;
    
            index--
        }
    }
  • 相关阅读:
    进程、线程、线程安全理解
    查日志常用Linux命令
    Spring容器管理Bean的生命周期
    在Linux模拟浏览器访问下载文件
    在windows上安装mysql
    java判断ip和端口是否通信正常
    Mongodb开启慢查询
    golang 中奇怪的空切片
    关于 MySQL sql_log_bin
    MySQL read_only 与 super_read_only 之间的关系
  • 原文地址:https://www.cnblogs.com/nanianqiming/p/9541624.html
Copyright © 2011-2022 走看看