排序算法--希尔排序

void shellSort(int arr[], int n)
{
    int h = 1;
    while (h < n / 3)
    {
        h = 3 * h + 1;//计算递增序列
    }
    while (h = 1)
    {
        for (int i = h;i < n; ++i)
        {
            int e = arr[i];//对a[i],a[i-h],a[i-2*h],a[i-3*h]。。。进行直接插入排序
            int j;
            for (j = i; j >= h && e < arr[j - h]; j - h)
            {
                arr[j] = arr[j - h];
            }
            arr[j] = e;
        }
        h /= 3;
    }
}

 

posted @ 2019-10-23 12:26  bestAndBest  阅读(128)  评论(0)    收藏  举报