Shell’s Sort

Solution 1 : (数据结构与算法分析 C++描述 第三版)

template<class T>
void shellSort(vector<T> &v)
{
    for(int gap = v.size() / 2; gap > 0; gap /= 2)
    {
        for(int i = gap; i < v.size(); ++i)
        {
            T tmp = v[i];
            int j = i;
            for(; j >= gap && tmp < v[j - gap]; j -= gap)
                v[j] = v[j - gap];
            v[j] = tmp;
        }
    }
}

你可能感兴趣的:(Shell’s Sort)