您的位置:首页 > 其它

希尔排序

2012-09-21 10:00 281 查看
希尔排序:

#include<stdio.h>

void shell(int *a,int n)
{
int gap,i,j,t;
for(gap=n/2;gap>0;gap=gap/2)
{
for (i=gap;i<n;i++)
{
for (j=i-gap;j>=0&&a[j]>a[j+gap];j-=gap)
{
t=a[j];
a[j]=a[j+gap];
a[j+gap]=t;
}
}
}
}

int main()
{
int x[10];
int i;
printf("input the numbers:\n");
for (i=0;i<10;i++)
{
scanf("%d",&x[i]);
}
printf("before sorted :\n");
for(i=0;i<10;i++)
{
printf("%d\t",x[i]);
}
shell(x,10);
printf("after sorted:\n");
for(i=0;i<10;i++)
{
printf("%d\t",x[i]);
}
putchar('\n');
return 0;
}

结果显示如下所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: