美文网首页
希尔排序

希尔排序

作者: Jfeng666 | 来源:发表于2018-09-04 01:39 被阅读0次

    定义

    是一种分组直接排序

    详细步骤

    1、希尔增量d=n/2
    2、将配许序列分成D个组,在各组内进行直接插入排序
    3、递减d=d/2,重复2步骤,直到d=1;

    P.S.

    每个组的两个元素之间位置相隔d
    在每一组里面进行直接插入排序

    希尔排序算法

    void ShellSort(RecType R[], int n)
    {
        int i, j, d;
        RecType tmp;
        d=n/2;  //增量置初值
        while (d>0)
        {
            for (i=d;i<n;i++)   //对相隔d位置的元素组*直接插入排序*
            {
                tmp=R[i];
                j=i-d;
                while (j>=0 && tmp.key<R[j].key)
                {
                    R[j+d]=R[j];
                    j=j-d;
                }
                R[j+d]=tmp;
            }
            d=d/2;  //减少增量
        }
    }
    

    相关文章

      网友评论

          本文标题:希尔排序

          本文链接:https://www.haomeiwen.com/subject/whpwwftx.html