希尔排序

#include<stdio.h>
void shellSort(int *arr,int len)
{
    int tmp;
    int i,j,Increment;
    for(Increment=len/2;Increment>0;Increment/=2)
    {
        for(i=Increment;i<len;i++)
        {
            tmp=arr[i];
            for(j=i;j>=Increment;j-=Increment)
            {
                if(tmp<arr[j-Increment])
                arr[j]=arr[j-Increment];
                else
                break;
            }
            arr[j]=tmp;
        }
    }
}
int main()
{
    int arr[]={2,0,3,4,1,44,45,22,4,7,8};
    int len=sizeof(arr)/sizeof(arr[0]);
    shellSort(arr,len);
    
    int k=0;
    for(;k<len;k++)
    {
        printf("%d ",arr[k]);
    }
    system("pause");
    return 0;
}

posted @ 2013-09-18 21:26  liguigen  阅读(231)  评论(0编辑  收藏  举报