数据结构与算法9-排序1

在这里插入图片描述
本篇文章讲解冒泡、插入、选择排序。

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

发布了71 篇原创文章 · 获赞 20 · 访问量 4847

猜你喜欢

转载自blog.csdn.net/qq_22795223/article/details/104821426