希尔排序.
//希尔排序
#include<stdio.h>
#include<time.h>
#define SWAP(x,y) ((x)=(x)^(y),(y)=(x)^(y),(x)=(x)^(y))
void shell(int a[],int n)
{
int d=n,i;
while(d>1)
{
d=(d+1)/2;
for(i=0;i<n-d;i++)
{
if(a[d+i]<a[i])
SWAP(a[d+i],a[i]);
}
}
}
void main()
{
srand(time(0));
int i,a[10];
for(i=0;i<10;i++)
{
a[i]=rand()%100;
printf("%d ",a[i]);
}
printf("\n");
shell(a,10);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}