插入排序和希尔排序的比较
Posted hill-foryou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序和希尔排序的比较相关的知识,希望对你有一定的参考价值。
希尔排序就是插入排序的升级版,插入排序是就近比较,一直到最后,希尔排序就是跳跃式比较,如果两个差值很大的数字距离较远,这样希尔排序的效果就显露出来了。
//插入排序
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; }
以上是关于插入排序和希尔排序的比较的主要内容,如果未能解决你的问题,请参考以下文章
(王道408考研数据结构)第八章排序-第二节:直接插入排序和希尔排序
(王道408考研数据结构)第八章排序-第二节:直接插入排序和希尔排序
插入排序(直接插入排序希尔排序);交换排序(冒泡排序快速排序);选择排序(简单选择排序堆排序);归并排序和基数排序;基于关键词比较的排序算法下界分析
直接插入排序 ,折半插入排序 ,简单选择排序, 希尔排序 ,冒泡排序 ,快速排序 ,堆排序 ,归并排序的图示以及代码,十分清楚