附有本人超级详细解释(看不懂的面壁十天!) 一、 实际问题: 希尔排序(Shell Sort)是插入排序的一种。因D.L.Shell于1959年提出而得名。它又称“缩小增量分类法”,在时间效率上比插入、比较、冒泡等排序算法有了较大改进。能对无序序列按一定规律进行排序。 二、数学模型: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。该方法实质上是一种分组插入方法。 三、算法设计: 1、将相隔某个增量dlta[k]的元素构成一个子序列。在排序过程中,逐次减小这个增量,最后当h减到1时,进行一次插入排序,排序就完成。增量序列一般采用:dlta[k]=2t-k+1-1,其中t为排序趟数,1≤k≤t≤[log2 (n+1)],其中n为待排序序列的长度。按增量序列dlta[0..t-1]。 2、按增量dlta[k](1≤k≤t≤[log2 (n+1)])进行一趟希尔插入排序。 3、在主函数中控制程序执行流程。 4、时间复杂度:1≤k≤t≤[log2 (n+1)]时为O(n3/2)。
上传时间: 2013-12-11
上传用户:天涯
经典的希尔排序算法,对大家学习数据结构及培养编程思想有所启发!
标签: 排序算法
上传时间: 2015-06-19
上传用户:拔丝土豆
%直接型到并联型的转换 % %[C,B,A]=dir2par(b,a) %C为当b的长度大于a时的多项式部分 %B为包含各bk的K乘2维实系数矩阵 %A为包含各ak的K乘3维实系数矩阵 %b为直接型分子多项式系数 %a为直接型分母多项式系数 %
上传时间: 2014-01-20
上传用户:lizhen9880
直接型到级联型的形式转换 % [b0,B,A]=dir2cas(b,a) %b 为直接型的分子多项式系数 %a 为直接型的分母多项式系数 %b0为增益系数 %B 为包含各bk的K乘3维实系数矩阵 %A 为包含各ak的K乘3维实系数矩阵 %
上传时间: 2013-12-30
上传用户:agent
本文档讲解了几种排序方式的优缺点。包含直接插入、希尔、直接选择、冒泡、快速、堆、二路归并等排序方式。
上传时间: 2014-01-04
上传用户:huyiming139
java实现的各种排序算法:插入排序、起泡排序、希尔排序等。
上传时间: 2013-12-25
上传用户:牧羊人8920
数据结构中的希尔排序算法的可行性实现,主要在vc中实现
上传时间: 2015-09-17
上传用户:851197153
数据结构中的/希尔排序法(类方法)xierfa1.c
上传时间: 2013-12-16
上传用户:aig85
高斯回代算法源代码 蚁群算法的matlab源码 蚁群算法TSP(旅行商问题)通用matlab程序 Java实现几种常见的排序算法 用pascal语言实现希尔排序算法
上传时间: 2014-12-09
上传用户:叶山豪
九种排序的源代码,冒泡排序: 直接插入排序 希尔排序 归并排序 折半插入排序 直接选择排序 基数排序 快速排序 堆排序
上传时间: 2015-11-07
上传用户:Altman