zoukankan      html  css  js  c++  java
  • 希尔排序

    基本过程

    1.按照指定的间隔(gap)对数组进行插入排序,是对插入排序的一种优化
    2.初始间隔设为数组长度一半,一次插排过后,间隔再次折半,直至间隔为1
    3.进行最后一次插排,完成整个排序

    JavaScript实现

    function fShellSort(arr,n){
        for(var gap = n/2;gap > 0;gap /= 2){
            //对数组从gap位置后的元素进行插入排序
            for(j=gap;j<n;j++){
                //插入排序开始
                if(arr[j] < arr[j-gap]){
                    var temp = a[j],k = j - gap;
                    while(k >= 0 && arr[k] > temp){
                        arr[k + gap] = arr[k];
                        k -= gap; 
                    }
                    arr[k + gap] = temp;
                }
            }
        }
       return arr; }
  • 相关阅读:
    Day4
    Day 4 -E
    Day4
    Day4
    Day4
    Day4
    Day4-F-产生冠军 HDU
    Day4
    Day4-B-最短路径问题 HDU3790
    HackerRank
  • 原文地址:https://www.cnblogs.com/mengff/p/6158562.html
Copyright © 2011-2022 走看看