冒泡排序
原理:
- 循环遍历列表,每次循环找出本次循环最大的元素排在后边
- 需要使用嵌套循环实现,外层循环控制总循环次数,内存循环负责每轮的循环比较
实例1:
1 | #冒泡排序 |
结果:
1 | 第0轮: |
选择排序
原理:
- 将待排序列表看成是已排序和未排序两部分
- 每次从未排序列表中找出最小值放到已排序列表末尾
PS:初始时,最小值假定为未排序的第一个位置的值
实例2:
1 | #选择排序 |
结果:
1 | [12, 32, 14, 28, 53, 42] |
快速排序
原理:
- 一次排序按照一个基准值将待排序的列表分割成两部分,基准值左边是比基准值小的元素,基准值右边是比基准值大的元素
- 按照上一步的方法对基准值左右两部分数据分别进行快速排序
实例3:
1 | #快速排序 |
结果:
1 | ---------排序结果-------------- |
归并排序
原理:
- 先递归分解序列,再排序合并序列
注意:图片第二行拆半拆分应该是:22 32 14 12 53 42 22 62的顺序,但是原理如图片所示
实例4:
1 | #归并排序 |
结果:
1 | ---------排序结果-------------- |