相信很多学习Python的同学,学完基本语法后,就要开始接触Python的算法了,其中一个最重要的算法就是排序算法,那么何谓排序算法呢,其又有哪些排序算法呢?接下来范范老师开辟一个技术系列和大家一起学习讨论下排序算法。
排序顾名思义:将一组无序的记录序列调整为有序的记录序列;而排序算法就是通过一个算法规则将一组无序的记录序列调整为有序的记录序列。
常见的排序算法种类:
1.冒泡排序
2.选择排序
3.插入排序
4.快速排序
5.堆排序
6.归并排序
7.希尔排序
8.计数排序
9.基数排序
而我们先从最简单的冒泡排序说起。
冒泡排序定义如下:
列表每两个相邻的数,如果前面比后面大,则交换这两个数,一趟排序完成后,则无序区域减少一个数,而有序区域增加一个数。
接下来我们通过一个简单的例子来彻底掌握冒泡排序的过程(以从小到大的排序为例):
排序算法——冒泡排序
如上图所示,此时箭头指针指向列表的第0位,此时第0位的4和第1位的5比较大小,此时发现4<5,此时4和5不用交换位置
排序算法——冒泡排序
箭头从第0位移动到第1位上指向5,此时5和2进行比较,发现2<5,所以5和2交换位置
排序算法——冒泡排序
此时箭头跟随5移动到列表的第2位上,此时5和3进行比较,发现3<5,所以5和3交换位置
排序算法——冒泡排序
此时箭头跟随5移动到列表的第3位上,此时5和6进行比较,发现5<6,所以5和6不用交换位置
排序算法——冒泡排序
箭头移动到列表的第4位上并指向6,此时6和1进行比较,发现1<6,所以6和1交换位置
排序算法——冒泡排序
此时经过第一趟的比较,6就是该列表中最大的数字了,并标记为红色的区域,该区域定义为有序区域,而前面的为无序区域。
接下来的进行的第二趟一直到第五趟的过程都和第一趟是一样的,此时不再赘述了。
第二趟的结果如下所示
排序算法——冒泡排序
第三趟的结果如下所示
排序算法——冒泡排序
第四趟的结果如下所示
排序算法——冒泡排序
第五趟的结果如下所示
排序算法——冒泡排序
此时理论已经弄清,接下来我们用代码来实现冒泡排序
排序算法——冒泡排序

运行结果如下:
排序算法——冒泡排序