- 可以类比摸牌的过程,每次拿到一张牌,从后往前比,比如先跟
A[N]
比,如果比它大,A[N]
往后挪一位;以此类推。
- 时间复杂度分析:
- 最好情况:一开始就是顺序,这时只需要从第二个数开始,每个数和它前面的数比一下,个元素总共需要次比较。 比较次数: 移动次数: 时间复杂度是线性的,
- 最坏情况:完全逆序,从下标1开始,每个数都需要和前面的数进行比较,同时所有数也都需要向后移动一个位置。从下标1到最后一个数,每个数都需要先存到
Tmp
变量中,再取出,一共次,对于插入坐标上的数字,需要比较次和移动次 比较次数: 移动次数: - 平均:
- 辅助空间:只有
Tmp
和用于循环的循环变量,复杂度为
- 优势:只有在摸到的牌比当前牌严格大的时候才会挪,稳定;