#include<stdio.h>
void shell(int a[],int n)
{
int k,j,i,gap,temp;
for(gap=n/2;gap>0;gap=gap/2)
{
for(i=0;i<gap;i++)
{
for(j=i+gap;j<n;j=j+gap)
{
if(a[j]<a[j-gap])
{
temp=a[j];
k=j-gap;
while(k>=0&&a[k]>temp)
{
a[k+gap]=a[k];
k=k-gap;
}
}
}
}
a[k+gap]=temp;
}
}
int main()
{
int a[10],n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
shell(a,n);
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
}
希尔排序
最新推荐文章于 2024-06-04 00:42:18 发布