#include <stdio.h>
#define SIZE 20
/***********************************************
比较以下两个"shell"函数的差别
************************************************/
void shell_sort(int v[],int n)
{
int i,j,gap,temp;
for(gap=n/2;gap>0;gap/=2)
{
for(i=gap;i<n;i++)
{
for(j=i-gap;j>=0&&v[j]>=v[j+gap];j-=gap)
{
temp=v[j];
v[j]=v[j+gap];
v[j+gap]=temp;
}
}
}
}
/****************************************************
void shell_sort(int v[],int n)
{
int i,j,gap,temp;
for(gap=n/2;gap>0;gap/=2)
{
for(i=gap;i<n;i+=gap)
{
for(j=i-gap;j>=0&&v[j]>=v[j+gap];j-=gap)
{
temp=v[j];
v[j]=v[j+gap];
v[j+gap]=temp;
}
}
}
}
**************************************************************/
int main()
{
int v[SIZE],i;
printf("Input number:/n ");
for(i=0;i<SIZE;i++)
{
scanf("%d" ,&v[i]);
}
shell_sort(v,SIZE);
printf("After shell_sort:\n");
for(i=0;i<SIZE)
{
printf("%5d",v[i]);
}
printf("\n");
getch();
return 0;
}