载入中…

您现在的位置: 四联自学考试网 >> 网络学院 >> 程序设计 >> VC语言 >> 经典算法 >> 学院正文
相 关 文 章
高质量C++/C编程指南 -- 类…
makefile(5)
高质量C++/C编程指南 --其它…
高质量C++/C编程指南 -- 附…
高质量C++/C编程指南 -- 附…
makefile(1)
makefile(2)
高质量C++/C编程指南 -- 内…
高质量C++/C编程指南 -- 内…
高质量C++/C编程指南 --  内…
精 彩 推 荐
最 新 热 门
最 新 推 荐
欢迎光临四联自学,现在是: 祝您自考成功!
希尔排序算法
原文作者:未知  文章录入:4Lzx.com  发布时间:2005-9-4 15:46:52    
基本思想:将整个无序序列分割成若干小的子序列分别进行插入排序。

序列分割方法:将相隔某个增量h的元素构成一个子序列。在排序过程中,逐次减小这个增量,最后当h减到1时,进行一次插入排序,排序就完成。增量序列一般采用:ht=2t-1,1≤t≤[log2n],其中n为待排序序列的长度。

C函数如下:

void prshl(p,n)

int n;double p[];

{

int k,j,i;

double t;

k=n/2;

while(k>0)

{

for(j=k;j<=n-1;j++)

{

t=p[j];i=j-k;

while((i>=0)&&(p[i]>t))

{

p[i+k]=p[i];i=i-k;

}

p[i+k]=t;

}

k=k/2;

}

return;

}
 
  • 上一篇学院:

  • 下一篇学院:
  • 论坛交流】【发表评论】【打印本文】【关闭窗口