void shellSort(int* arr, int n)
{
int gap = n / 2;
while(1 <= gap)
{
int i,j,k;
for(i=0;i<gap;i++){
for(j=i+gap;j<n;j=j+gap){
int temp=arr[j];
for(k=j-gap;k>=0&&temp<arr[k];k=k-gap){
arr[k+gap]=arr[k];
}
arr[k+gap]=temp;
}
}
gap /= 2;
}
}
{
int gap = n / 2;
while(1 <= gap)
{
int i,j,k;
for(i=0;i<gap;i++){
for(j=i+gap;j<n;j=j+gap){
int temp=arr[j];
for(k=j-gap;k>=0&&temp<arr[k];k=k-gap){
arr[k+gap]=arr[k];
}
arr[k+gap]=temp;
}
}
gap /= 2;
}
}
*********************注意:希尔排序不是稳定的排序算法***********************