揰掵佲 发表于 2014-12-9 08:44:29

易语言算法入门(5) 排序算法(三)

易语言算法入门(5) 排序算法(三)
上节对直接插入排序进行了优化,我们暂且把优化算法称为二分直接插入排序,这种算法仅仅事对寻找插入点的过程做了优化。如果我们能找到另一中方法,可同为减少寻找插入点的次数和移动结点的次数,就可显著的提高排序的运算速度。
本节介绍的希尔排序算法是直接插入排序法的一种变种,它能有效的减少这两个方面的运算量,从而显著的提高排序操作的运算速度。
原理: 先取一个小于结点数的整数k作为分组单位,把表上的所有相距k的结点逻辑上看成一组。在个组内进行直接插入排序;减小k的取值,把表上的所有相距k的结点逻辑上看成一组。在个组内进行直接插入排序;重复以上步骤;最后一次k取1,即对整个表做直接插入排序。
其中k称为增量,增量的取值集合称为增量表。

例,无序数组增量表我们取成“5,3,1”(k的取值集合)
**** Hidden Message *****

124713549 发表于 2014-12-9 09:48:24

优秀文章!神马都是浮云,支持!

苍天静 发表于 2014-12-9 12:25:03

优秀文章!神马都是浮云,支持!

325019289 发表于 2014-12-9 13:25:32

来看看楼主,天天好心情
(*^__^*)

Sodiseng 发表于 2014-12-9 13:42:04

学习算法中,谢谢师傅指导

2991239158 发表于 2014-12-9 15:40:55

来看看楼主,天天好心情 (*^__^*)

安。 发表于 2014-12-9 23:21:39

赞一个。

fengxin0007 发表于 2014-12-10 07:49:15

谢谢楼主分享

qms369 发表于 2019-10-27 10:14:50

继续学习....................
页: [1]
查看完整版本: 易语言算法入门(5) 排序算法(三)