博客园

super.hill

记录搬砖中遇到的坑,欢迎批评指导!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 希尔排序就是插入排序的升级版,插入排序是就近比较,一直到最后,希尔排序就是跳跃式比较,如果两个差值很大的数字距离较远,这样希尔排序的效果就显露出来了。

//插入排序    
function insertSort(arr) { var j = 0; for (var i = 1; i
< arr.length; i++) { var temp = arr[i]; var k = i; while (k >= 0 && arr[k - 1] >= temp) { arr[k] = arr[k - 1]; k--; j++; } arr[k] = temp; } console.log(j, '比较次数') return arr; }    //希尔排序    var p = 0; function shellsort(arr, gaps) { for (var g = 0; g < gaps.length; ++g) { for (var i = gaps[g]; i < arr.length; ++i) { var temp = arr[i]; var j = i; for (;j >= gaps[g] && arr[j - gaps[g]] > temp; j -= gaps[g]) { arr[j] = arr[j - gaps[g]]; p++; } arr[j] = temp; } } console.log(p, '比较次数') return arr; }

 

posted on 2018-07-11 11:48  超岭  阅读(196)  评论(0编辑  收藏  举报
博客园