稳定性:如果a原本在b前面,而a=b,排序之后a仍然在b的前面则为稳定,排序之后 a 可能会出现在 b 的后面即为不稳定。
不稳定的排序算法:快速排序,希尔排序,选择排序和堆排序。
时间复杂度如下:图来源于https://zhuanlan.zhihu.com/p/73714165
1.插入排序
插入排序是将每一个元素都与前面的元素比较,小的放在前面。
代码如下:
void insert_sort(vector<int> &num)
{
int len=num.size();
for(int i=0;i<len;++i)
for(int j=i;j>0&&num[j]<num[j-1];--j)
{
swap(num[j],num[j-1]);