直接插入排序

Solution 1: (算法导论 第三版--插入排序)

template<class T>
void insertionSort(vector<T> &v)
{
    for(int j = 1; j < v.size(); ++j)
    {
        T key = v[j];

        int i = j - 1;
        while(i >= 0 && v[i] > key)
        {
            v[i + 1] = v[i];
            i = i - 1;
        }
        v[i + 1] = key;
    }
}

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

template<class T>
void insertSort(vector<T> &v)
{
    int i;

    for(int j = 1; j < v.size(); ++j)
    {
        T key = v[j];
        for(i = j; i > 0 && key < v[i - 1]; i--)
            v[i] = v[i - 1];
        v[i] = key;
    }
}

你可能感兴趣的:(直接插入排序)