希尔排序

来源:互联网 发布:java模拟器安卓6.0 编辑:程序博客网 时间:2024/06/15 21:34
/* 插入排序的变种,通过增量这一特性,减少了数据比较和移动次数,是一种优化的插入排序 */void shellSort(std::vector<int>& vec){        int rate = 2;        int increNum = vec.size() / rate;        while(increNum)        {                for (int i = increNum; i < vec.size(); i++)                {                        int tmp = vec[i];                        int j = i - increNum;                        for (; j >= 0; j -= increNum)                        {                                if (vec[j] <= tmp)                                {                                        break;                                }                                else                                {                                        vec[j + increNum] = vec[j];                                }                        }                        vec[j+increNum] = tmp;                }                rate *= 2;                increNum = vec.size() / rate;        }}


0 0
原创粉丝点击