• 【JavaScript算法】---插入排序(转载自我的老师 Alley-巷子)


    一、什么叫做插入排序法

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

    二、核心

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

    四、代码

    复制代码
    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--
        }
    }
    复制代码
  • 相关阅读:
    Java程序员进阶:Java异常知识点梳理
    JVM内存模型(运行时数据区)
    史前最详细的:Java线程池核心流程解析
    10年大牛给Java 初学者的学习路线建议,如何学习 Java?
    异常处理(面试题)
    115道Java经典面试题(面中率高、全)
    Java异常处理(捕获异常)
    Java异常处理(观察常见异常)
    Java异常处理(异常基本概念)
    学习笔记:Java数组
  • 原文地址:https://www.cnblogs.com/mp-0518/p/11440532.html
Copyright © 2020-2023  润新知