野芷湖保利心语六期:什么是希尔排序法

来源:百度文库 编辑:查人人中国名人网 时间:2024/03/29 04:26:29

基本思想:将整个无序序列分割成若干小的子序列分别进行插入排序。

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

}

冒泡排序吧