【千锤百炼Python—11】:十大排序算法总结(动画+代码)

✨博客主页:王乐予
✨博主爱好:羽毛球
✨年轻人要:Living for the moment(活在当下)!
推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】

目录

  • 一、算法分类
    • 1.1 按照是否进行元素比较分类
    • 1.2 按照是否使用外存分类
  • 二、算法复杂度分析
    • 2.1 时间复杂度
    • 2.2 空间复杂度
    • 2.3 稳定性
  • 三、十大排序算法的原理、动画及代码

不管学习哪种语言。十大经典的排序算法都是要掌握的!

一、算法分类

十大排序算法有两种分类方式,一种是按照是否进行元素比较分类,另一种是按照是否使用外存进行分类!接下来,我会一一介绍这两种分类方式。

1.1 按照是否进行元素比较分类

  • 比较类排序:通过比较元素间的大小进行排序的一种方式。
  • 非比较排序:不通过比较元素间的大小进行排序的一种方式。

思维导图如下:

【千锤百炼Python—11】:十大排序算法总结(动画+代码)_第1张图片

1.2 按照是否使用外存分类

  • 内部排序:数据记录在内存中进行排序的一种方式。
  • 外部排序:需要排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存的一种排序方式。

思维导图如下:
【千锤百炼Python—11】:十大排序算法总结(动画+代码)_第2张图片

二、算法复杂度分析

各排序算法的时间复杂度、空间复杂度与稳定性分析如下表:
【千锤百炼Python—11】:十大排序算法总结(动画+代码)_第3张图片

2.1 时间复杂度

  时间复杂度:对所有元素总的操作次数。

2.2 空间复杂度

  空间复杂度:完成一个程序所用的内存量。

2.3 稳定性

  稳定性:若有两个元素的值相同,则在排序后仍然保证两个元素的原有相对位置不变。

三、十大排序算法的原理、动画及代码

冒泡排序:【千锤百炼Python—1】:十大排序算法之冒泡排序

快速排序:【千锤百炼Python—2】:十大排序算法之快速排序

简单选择排序:【千锤百炼Python—3】:十大排序算法之简单选择排序

堆排序:【千锤百炼Python—4】:十大排序算法之堆排序

简单插入排序:【千锤百炼Python—5】:十大排序算法之简单插入排序

希尔排序:【千锤百炼Python—6】:十大排序算法之希尔排序

归并排序:【千锤百炼Python—7】:十大排序算法之归并排序

基数排序:【千锤百炼Python—8】:十大排序算法之基数排序

计数排序:【千锤百炼Python—9】:十大排序算法之计数排序

桶排序:【千锤百炼Python—10】:十大排序算法之桶排序

你可能感兴趣的:(千锤百炼Python,排序算法,排序算法,python)