#include <iostream>
using namespace std;
void shell_sort(int *unsorted,int len)
{
int i,j,gap;
for(gap=len/2;gap>0;gap/=2)
{
for(i=gap;i<len;i++)
{
//此处运用直接插入排序法
int tmp=unsorted[i];
for(j=i-gap;j>=0 && unsorted[j]>tmp;j-=gap)
{
unsorted[j+gap]=unsorted[j];
}
unsorted[j+gap]=tmp;
}
}
}
int main()
{
int array[]={36,15,24,63,42,21},i;
int size=sizeof(array)/sizeof(array[0]);
cout<<"排序前:";
for(i=0;i<size;i++)
cout<<array[i]<<" ";
cout<<endl;
shell_sort(array,size);
cout<<"排序后:";
for(i=0;i<size;i++)
cout<<array[i]<<" ";
cout<<endl;
return 0;
}