一、列表排序
排序:将一组”无序“的记录序列调整为”有序“的记录序列。
列表排序:将无序的列表变为有序列表
- 输入:列表
- 输出:有序列表
- 升序与降序
- 内置排序函数:sort()
常见排序算法:
排序Low B三人组:
- 冒泡排序
- 选择排序
- 插入排序
排序NB三人组:
- 快速排序
- 堆排序
- 归并排序
其他排序:
- 希尔排序
- 计数排序
- 基数排序
1. 冒泡排序
定义:列表每两个相邻的数,如果前面比后面大,则交换这两个数。(目的:得到一个升序列)
一趟排序完成后,则无序区减少一个数,有序区增加一个数。
代码关键点:趟、无序区范围。
我们可以发现,当最后仅剩下一个元素时不再需要排序,因此最大需要排序len(list)-1趟。
第一趟确定最大的数;第二趟确定第二大的数...
示例代码如下:
def bobble_sort(li):
for i in range(len(li) - 1): # 共循环n-1趟,第i趟
for j in range(len(li) - i - 1): # 箭头的长度是从0到len(li)-1;第j个箭头
if li[j] > li[j + 1]: