#include<stdio.h>
void insert(int a[],int gap,int i)
{
int x=a[i],j;
for(j=i-gap; j>0 && x<a[j]; j-=gap)
a[j+gap]=a[j];
a[j+gap]=x;
}
void shellsort(int a[],int n)
{
for(int gap=n/2; gap>0; gap/=2)
for(int i=gap; i<=n; i++)
insert(a,gap,i);
}
int main()
{
int a[100],n;
scanf("%d",&n);
for(int i=1; i<=n; i++)
scanf("%d",&a[i]);
shellsort(a,n);
for(int i=1; i<=n; i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
来源:CSDN
作者:相似的人适合打闹
链接:https://blog.csdn.net/AYSXY/article/details/103112452