打扑克牌时,我们每摸一张牌,就将它插入到合适的位置,插入排序和这个过程类似。
给定一个数组,我们从第二个元素开始,每次都将元素插入到已排序的子数组中。
下面给出插入排序的C++代码:
void insertionSort(std::vector<int>& v) {
for (int i = 1; i < v.size(); ++i) {
int j, x;
for (j = i - 1, x = v[i]; j >= 0 && v[j] > x; --j) {
v[j + 1] = v[j];
}
v[j + 1] = x;
}
}