描述:遍历向量,为每个元素找到它应该在的位置,插入。
template <typename T>
void insertionSort(vector<T>& v)
{
int i, j, n = v.size();
T target;
// place v[i] into the sublist
// v[0] ... v[i-1], 1 <= i < n,
// so it is in the correct position
for (i = 1; i < n; i++)
{
// index j scans down list from v[i] looking for
// correct position to locate target. assigns it to
// v[j]
j = i;
target = v[i];
// locate insertion point by scanning downward as long
// as target < v[j-1] and we have not encountered the
// beginning of the list
while (j > 0 && target < v[j-1])//定位插入点
{
// shift elements up list to make room for insertion
v[j] = v[j-1];
j--;
}
// the location is found; insert target
v[j] = target; //插入
}
}