所谓的插入排序: 就是在数组之后的位置进插入 在进行排序 下面我们进行画图举例来演示一下插入排序。
代码实现
实现方式:就是在后面插入时比较前一个数一插入的数的大小,当前一个数比后一个数大时,前一个数调到后一个位置,然后继续往前走,知道找到前一个数小于这个数为止,九插入这个数字。然后跳出循环。
具体代码实现如下
void insertSort(vector<int>& v)
{
for (int i = 0; i < v.size() - 1; ++i)
{
int end = i;
int tem = v[end + 1];
while (end >= 0)
{
if (tem < v[end])
{
v[end + 1] = v[end];
end--;
}
else
{
break;
}
}
v[end + 1] = tem;
}
}
插入排序的时间复杂度
最好:o(n)
最坏 o(n^2)