始终将序列切分为有序的两部分:有序的前缀,无序的后缀,通过迭代,反复的将后缀的首元素转移至前缀中。
最坏时间复杂度O(n^2)
代码
void insertSort(vector<int> &vec,int n) {
for (int i = 1; i < n; i++) {
int key = vec[i], j = i;
for (; j >0; j--) {
if (key < vec[j - 1])
vec[j]=vec[j - 1];
else break;
}
vec[j] = key;
}
}