码迷,mamicode.com
首页 > 编程语言 > 详细

希尔排序

时间:2018-10-04 11:41:38      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:++   while   var   family   改进   temp   元素   shellSort   算法   

  希尔排序是插入排序的改进版本,它与插入排序的不同之处在于,它会优先比较距离较远的元素。其中它的时间复杂度为O(n^1.3),空间复杂度O(1),算法相对不稳定。

 1 function shellSort(arr) {
 2     var length = arr.length;
 3     var temp , gap = 1;
 4     while(gap<length/3){
 5         gap = gap*3+1 ;//动态定义间隔序列
 6     }
 7     for (gap; gap>0; gap = parseInt(gap/3)) {
 8         for (var i = gap; i<length; i++) {
 9             temp = arr[i];
10             for (var j = i - gap; j>=0&&arr[j]>temp; j-=gap) {
11                 arr[j+gap] = arr[j];
12             }
13             arr[j+gap] = temp;
14         }
15     }
16     return arr;
17 }
18 console.log(shellSort([6,7,3,4,1,5,3,7,4]));

 

希尔排序

标签:++   while   var   family   改进   temp   元素   shellSort   算法   

原文地址:https://www.cnblogs.com/daheiylx/p/9739366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!