描述:遍历向量,为每个元素找到它应该在的位置,插入。
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; //插入
}
}
博客介绍了一种向量插入排序算法。通过遍历向量,为每个元素找到其应处位置并插入。代码中使用模板函数,通过循环和条件判断,不断将元素移动到合适位置,最终完成排序。
69万+

被折叠的 条评论
为什么被折叠?



