#include<stdio.h>
int a[10005];
int n;
void shell(int d)
{
int i,j,t;
for(i=d;i<n;i++)
{
t=a[i];
for(j=i;j>=d&&a[j-d]>t;j-=d)//减到0为止
{
a[j]=a[j-d];
}
a[j]=t;
}
for(i=0;i<n;i++)
{
if(i==n-1) printf("%d\n",a[i]);
else printf("%d ",a[i]);
}
}
int main()
{
int i;
while(~scanf("%d",&n))
{
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
shell(n/2);
shell(1);
}
}
希尔排序
最新推荐文章于 2017-12-06 00:23:07 发布