✨博客主页:王乐予🎈
✨年轻人要:Living for the moment(活在当下)!💪
🏆推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】
目录
不管学习哪种语言。十大经典的排序算法都是要掌握的!
😺一、算法分类
十大排序算法有两种分类方式,一种是按照是否进行元素比较分类,另一种是按照是否使用外存进行分类!接下来,我会一一介绍这两种分类方式。
🐶1.1 按照是否进行元素比较分类
- 比较类排序:通过比较元素间的大小进行排序的一种方式。
- 非比较排序:不通过比较元素间的大小进行排序的一种方式。
思维导图如下:
🐶1.2 按照是否使用外存分类
- 内部排序:数据记录在内存中进行排序的一种方式。
- 外部排序:需要排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存的一种排序方式。
思维导图如下:
😺二、算法复杂度分析
各排序算法的时间复杂度、空间复杂度与稳定性分析如下表:
🐶2.1 时间复杂度
时间复杂度:对所有元素总的操作次数。
🐶2.2 空间复杂度
空间复杂度:完成一个程序所用的内存量。
🐶2.3 稳定性
稳定性:若有两个元素的值相同,则在排序后仍然保证两个元素的原有相对位置不变。
😺三、十大排序算法的原理、动画及代码
简单选择排序:【千锤百炼Python—3】:十大排序算法之简单选择排序
简单插入排序:【千锤百炼Python—5】:十大排序算法之简单插入排序