xingma0910

学习中……

导航

希尔排序

希尔排序:

#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;
}

结果显示如下所示:

posted on 2012-09-21 10:00  xingma0910  阅读(151)  评论(0)    收藏  举报