zoukankan      html  css  js  c++  java
  • 直接插入排序(js版)

    直接插入排序(从小到大)

    • 基本思想:将一个记录插入到已经排好序的有序表中,得到一个新的,记录数加1的有序表。
     1 function insertSort(arr){
     2     var i,j,temp=0;
     3     for(i=1;i<arr.length;i++){
     4         if(arr[i]<arr[i-1]){
     5             temp=arr[i];
     6             for(j=i-1;arr[j]>temp;j--){
     7                 arr[j+1]=arr[j];
     8             }
     9             arr[j+1]=temp;
    10         }
    11     }
    12 }
    13 var arr=[5,3,4,6,2];
    14 insertSort(arr);
    15 console.log(arr);  //[2,3,4,5,6]

    temp变量起到哨兵的作用。i从1开始,即假设arr[0]=5的位置固定好了,

    第3行中进行主循环,第4行进行判断,如果arr[i]<arr[i-1],则将arr[i]的数放到temp中存放。

    从arr[i-1]开始向后进行移位,终止条件为找到arr[j]<=temp的值,此时,将temp放到arr[j+1]的位置(因为进行j--运算)。

    不断循环,直至排序所有数值。

     

  • 相关阅读:
    Alpha发布——美工+文案展示博客
    021_func
    020_with
    018_IO
    017_set
    016_dict
    015_string
    012_list
    010_ternaryOperation
    008_standard_lib_os
  • 原文地址:https://www.cnblogs.com/alaner/p/9516961.html
Copyright © 2011-2022 走看看