易语言算法入门(5) 排序算法(三)
易语言算法入门(5) 排序算法(三)上节对直接插入排序进行了优化,我们暂且把优化算法称为二分直接插入排序,这种算法仅仅事对寻找插入点的过程做了优化。如果我们能找到另一中方法,可同为减少寻找插入点的次数和移动结点的次数,就可显著的提高排序的运算速度。
本节介绍的希尔排序算法是直接插入排序法的一种变种,它能有效的减少这两个方面的运算量,从而显著的提高排序操作的运算速度。
原理: 先取一个小于结点数的整数k作为分组单位,把表上的所有相距k的结点逻辑上看成一组。在个组内进行直接插入排序;减小k的取值,把表上的所有相距k的结点逻辑上看成一组。在个组内进行直接插入排序;重复以上步骤;最后一次k取1,即对整个表做直接插入排序。
其中k称为增量,增量的取值集合称为增量表。
例,无序数组增量表我们取成“5,3,1”(k的取值集合)
**** Hidden Message *****
优秀文章!神马都是浮云,支持! 优秀文章!神马都是浮云,支持!
来看看楼主,天天好心情
(*^__^*) 学习算法中,谢谢师傅指导 来看看楼主,天天好心情 (*^__^*) 赞一个。 谢谢楼主分享 继续学习....................
页:
[1]