#include <myhead.h>
int main(int argc, const char *argv[])
{
int i,j,t,k;
int a[10]={1,56,2,48,6,99,48,32,12,5};
for(k=10;k>0;k=k/2)
{
for(i=k;i<10;i++)
{
t=a[i];
for(j=i-k;j>=0;j=j-k)
{
if(t<a[j])
{
a[j+k]=a[j];
}
else
{
break;
}
}
a[j+k]=t;
}
}
for(i=0;i<10;i++)
{
printf("%d\t",a[i]);
}
printf("\n");
return 0;
}
希尔排序:将直接插入排序嵌套在增量k的循环内for(k = len/2;k>0;k=k/2)然后将5个1改为5个增量 k
最新推荐文章于 2024-10-31 16:16:13 发布