希尔排序算法.c

来自「希尔排序算法: 基本思想:将整个无序序列分割成若干小的子序列分别进行插入排序。」· C语言 代码 · 共 47 行

C
47
字号
/*希尔排序算法:
基本思想:将整个无序序列分割成若干小的子序列分别进行插入排序。 序列分割方法:将相隔某个增量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; 

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?