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; } }