这里只讲理论不谈具体的代码实现
希尔排序也是一种插入排序算法。先取一个小于n的整数d1作为第一个增量,把表的全部元素分成d1个组,将所有距离为d1的倍数的元素放在同一个组中,在各个组内进行直接插入排序,依次重复。
举个栗子:{9,8,7,6,5,4,3,2,1,0}。例子中有10个数,d=5时,就把这一序列分为5组每组2个元素,可以找第一个元素然后往后面数第五个元素就是与它一组以此类推。(9,4),(8,3),(7,2),(6,1),(5,0)他们分别各位一组,然后在组内进行排序。
d=2时,就是把这一序列分为2组每组5个元素,(4,2,0,8,6),(3,1,9,7,5)各位一组,再在组内排序。
d=1时就是分为1组每组10个元素,再在组内排序。
这样序列就排好顺序了!
数据结构与算法理论篇--希尔排序
最新推荐文章于 2020-04-14 21:38:40 发布