本篇文章讲解冒泡、插入、选择排序。
1.衡量排序算法执行效率(不太用的到)
时间复杂度
时间复杂度的系数、常数、低阶
比较次数和交换(或移动)次数
2.一些前提概念
上述使用稳定排序算法的例子蛮实用的。
3.冒泡排序
平均时间复杂度呢?—— 使用有序度、逆序度
满有序度 = n*(n-1)/2
逆序度 = 满有序度 - 有序度
最坏情况的逆序度是 n*(n-1)/2,所以算平均是 n*(n-1)/4,所以平均时间复杂度为O(n^2)。
4.插入排序(就是打扑克牌,所以很常用)
上述关于逆序度的trick,了解一下即可。
5.选择排序(就是选苹果)
6.为什么插入排序更受欢迎
7.小结
8.扩展
冒泡排序动图:https://pic1.zhimg.com/v2-1543c0b97237bb55063e033959706ca0_b.webp
插入排序动图:https://pic2.zhimg.com/v2-f87ad7d8ad54379dd81f02fcf9b91f49_b.webp
选择排序动图:https://pic1.zhimg.com/v2-f20b8898585b3ca03843d93ce2c35a68_b.webp
来源:CSDN
作者:Xu_Wave
链接:https://blog.csdn.net/qq_22795223/article/details/104821426