#include <stdio.h>
void swap(int arr[],int a,int b)
{int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
void shellsort(int arr[],int n)
{ int i,j,temp,a;
for(a=n/2;a>0;a=a/2)
{ for(i=a;i<n;i++)
{
for(j=i-a;j-=a;j>=0)
{
if(arr[j+a]<arr[j])
{ swap (arr,j+a,j);}
}
}
}
}
#define n 8
int main( )
{ int i;
int arr[n] = {6,5,3,1,8,7,2,4};
for(i=0;i<8;i++)
printf("%d",arr[i]); //输出排序前的所有数组元素
printf("\n");
shellsort(arr,n); //直接调用前面定义的希尔排序函数
for(i=0;i<n;i++)
printf("%d", arr[i]); //输出排序后的所有数组元素
}