这里是传送门⇒总结:关于排序算法html
平均时间复杂度 | 最优时间复杂度 | 最差时间复杂度 | 空间复杂度 | 稳定性 | |
---|---|---|---|---|---|
希尔排序 | *O(n1.3) | *O(n) | *O(n2) | O(1) | 不稳定 |
希尔排序是直接插入排序的改进版本。直接插入排序每次只能让数据移动一位,而希尔排序是经过比较相距必定间隔的元素来进行,各趟比较所用的距离随着算法的进行而减少,因此希尔排序又称“缩小增量排序”算法
// 此处传入发array会被直接改变 function ShellSort(array) { var len = array.length; for (var gap = Math.floor(len / 2); gap > 0; gap = Math.floor(gap / 2)) { for (var i = gap; i < len; i++) { var temp = array[i]; for (var j = i; j >= gap && temp < array[j - gap]; j -= gap) { array[j] = array[j - gap]; } array[j] = temp; } } }