VC++之谢尔排序:先将整个待排记录序列分割成为若干子序列分别进行直接插入排 序,

时间:2012-10-25 16:55:23
【文件属性】:

文件名称:VC++之谢尔排序:先将整个待排记录序列分割成为若干子序列分别进行直接插入排 序,

文件大小:594KB

文件格式:RAR

更新时间:2012-10-25 16:55:23

谢尔排序

它的基本思想是:先将整个待排记录序列分割成为若干子序列分别进行直接插入排 序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。 在希尔排序中,子序列的构成不是简单地“逐段分割”,而是将相隔某个“增量”的记录组成一个子序列。如在第一趟排序时的增量为7,即将相隔为7的元素编成一组进行直接插入排序。第二趟排序时的增量为3,增量进一步缩小。由于在这两趟的插入排序中在子序列中逆序的关键字是跳跃式地移动,从而使得在进行最后一趟增量为1的插入排序时,序列已基本有序,只要作少量比较和移动即可完成排序,因此希尔排序的时间复杂度较直接插入排序低。 下面用算法语言描述的希尔排序:


【文件预览】:
shells
----shells.ncb(41KB)
----shells.opt(48KB)
----shells.dsp(4KB)
----Debug()
--------vc60.pdb(100KB)
--------vc60.idb(73KB)
--------shells.pch(1.93MB)
--------shells.pdb(601KB)
--------shells.exe(240KB)
--------u.obj(12KB)
--------shells.ilk(349KB)
----u.cpp(969B)
----shells.dsw(537B)
----shells.plg(246B)

网友评论