当前位置:编程学习 > 网站相关 >>

《大话数据结构》第9章 排序 9.6 希尔排序(下)

9.6.3 希尔排序算法
        好了,为了能够真正弄明白希尔排序的算法,我们还是老办法——模拟计算机在执行算法时的步骤还研究算法到底是如何进行排序的。
        希尔排序算法代码如下。

 1 void ShellSort(SqList *L)
 2 {
 3     int i,j;
 4     int increment=L->length;
 5     do
 6     {
 7         increment=increment/3+1;            /* 增量序列 */
 8         for(i=increment+1;i<=L->length;i++)
 9         {
10             if (L->r[i]<L->r[i-increment])    /* 需将L->r[i]插入有序增量子表 */ 
11             { 
12                 L->r[0]=L->r[i];             /* 暂存在L->r[0] */
13                 for(j=i-increment;j>0 && L->r[0]<L->r[j];j-=increment)
14                     L->r[j+increment]=L->r[j]; /* 记录后移,查找插入位置 */
15                 L->r[j+increment]=L->r[0]; /* 插入 */
16             }
17         }
18
补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,