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

1、什么叫作插入排序法算法

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

 

2、核心spa

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

4、代码code

复制代码
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--
    }
}
复制代码
相关文章
相关标签/搜索