// ************ 希尔排序 **************
#include "stdafx.h"
void shellsort(int* data, int len)
{
int d = len;
int i = 0;
while(d > 1)
{
d = (d+1)/2;
for(i=0; i<len-d; i++)
{
if(data[i]>data[i+d])
{
int temp = data[i+d];
data[i+d] = data[i];
data[i] = temp;
}
}
for(i=0; i<len; i++)
printf("%5d",data[i]);
printf("\n");
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[]={47,38,65,97,76,13,27,49,55,4};
int len = sizeof(a)/sizeof(int);
shellsort(a,len);
return 0;
}
//运行结果