美文网首页
希尔排序(插排改造优化)

希尔排序(插排改造优化)

作者: Volcaner | 来源:发表于2021-02-07 11:41 被阅读0次
function insertionSort4Gap(arr, gap) {
  var len = arr.length;
  gap = typeof gap === 'number' && gap > 0 ? gap : 1;
  // for(let i = gap; i < len; i += gap) {
  for(let i = gap; i < len; i++) {
    var cur = arr[i];
    var j = i - gap;
    while(j >= 0 && arr[j] > cur) {  // 这一步,由于 gap 变大(再由大递减),节约时间
      arr[j + gap] = arr[j];
      j -= gap;
    }
    arr[j + gap] = cur;
  }
  
  return arr;
}
function shellSort(arr) {
  var len = arr.length;
  var gap = 1;
  while(gap < len / 3) {
    gap = gap * 3 + 1;
  }
  for(gap; gap > 0; gap = Math.floor(gap / 3)) {
    insertionSort4Gap(arr, gap);
  }
  
  return arr;
}

console.log(new Date().getTime());
shellSort(arr);
console.log(new Date().getTime());
console.log(arr);
Sorting_shellsort_anim.gif
var arr = [4321, 34, 5643, 4321, 654, 2, 4389, 34, 564, 389, 3, 10, 23, 34, 89, 10, 2, 543, 4813, 89324, 765, 3, 2, 2, 4321, 34, 5643, 4321, 654, 2, 4389, 34, 564, 389, 3, 10, 23, 34, 89, 10, 2, 543, 4813, 89324, 765, 3, 2, 2, 4321, 34, 5643, 4321, 654, 2, 4389, 34, 564, 389, 3, 10, 23, 34, 89, 10, 2, 543, 4813, 89324, 765, 3, 2, 2];


console.log(new Date().getTime());
insertionSort(arr);
console.log(new Date().getTime());

相关文章

  • 希尔排序(插排改造优化)

  • 算法

    【原创】以下是自己写的某些算法的JS实现 快排 (一) 快排(二) 希尔排序 插排 二分插排 归并排序

  • 希尔排序

    希尔排序又称“缩小增量排序”,是对直接插入排序方法的改造。 希尔排序是一种不稳定的排序方法。基本思想是将整个待排记...

  • JavaScript实现排序算法

    实现了冒泡,选择,插入,快排,希尔,归并 冒泡排序 选择排序 插入排序 快速排序 希尔排序 归并排序

  • 希尔排序(swift、oc双语实现)

    希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排...

  • 图解排序算法,之希尔排序

    希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排...

  • 希尔排序

    希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排...

  • 排序算法大全 | 希尔排序

    希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排...

  • 终于理解希尔排序与插入排序

    希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排...

  • 《大话数据结构》笔记二(排序)

    1 冒泡排序(优化)2 选择排序3 直接插入排序4 希尔排序5 堆排序6 归并排序(优化)7 快速排序(优化) 1...

网友评论

      本文标题:希尔排序(插排改造优化)

      本文链接:https://www.haomeiwen.com/subject/bphztltx.html