shell排序:
void ShellInsert(int arr[],int len,int dk)
{
int j = 0;
for(int i = dk + 1;i<len;i++)
{
if(arr[i]<arr[i-dk])
{
arr[0] = arr[i];
for(j=i-dk;j>0&&arr[0]<arr[j];j-=dk)
arr[j+dk] = arr[j];
arr[j+dk]=arr[0];
}
}
}
int main()
{
int arr[11]={0,49,38,65,97,76,13,27,49,55,4};
int dlta[3]={5,3,1};
for(int k=0;k<3;k++)
ShellInsert(arr,11,dlta[k]);
print(arr,11);
getchar();
return 0;
}