算法---希尔排序

来源:互联网 发布:js设置时间戳 编辑:程序博客网 时间:2024/06/07 18:28

希尔排序,又称缩小增量排序。

将需要排序的序列划分为若干个较小的序列,对这些序列进行直接插入排序,通过这样的操作可使需要排序的数列基本有序,最后再使用一次直接插入排序。


void shellsort(int a[],int n)

{
        int d,i,j,x;
        d = n /2;
        while(d >= 1)
        {
                for(i=d;i<n;i++)
                {
                        x = a[i];
                        j = i - d;
                        while(j >= 0 && a[j] > x)
                        {
                                a[j+d] = a[j];
                                j = j - d;
                        }
                        a[j+d] = x;
                }
                d /= 2;
        }

}

0 0
原创粉丝点击