希尔排序
Concept¶
希儿排序是一种基于插入排序的快速的排序算法,对于大规模的数据,插入排序会很慢,因为插入排序只会交换相邻的两个元素,如果最小的元素在数组的最后一个,那么则需要N - 1
的交换才能将它挪到正确的位置上。希尔排序则为了加快速度,简单的改进了插入排序,交换不相邻的元素以对数组的局部进行排序,并最终用插入排序将局部有序的数组排序。
希尔排序的思想就是使数组中任意间隔为h
的元素都是有序的,在进行排序时,如果h
很大,我们就能将元素移动到很远的地方,为实现更小的h
有序创造了方便。而实现希尔排序的一种方法是对于每个h
,用插入排序将h
个子数组独立排序,h
是递减的,直到h
递减为1
时,就能将整个数组完整排序完毕。
Implementation¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|