内容正文:
64 Python冒泡排序的
应用
复习
基本原理:
冒泡排序通过多次遍历待排序列表,依次比较相邻元素的大小,如果顺序不对则交换它们的位置,直至整个列表有序。
算法步骤:
从列表的第一个元素开始,依次比较相邻元素并进行交换,每次遍历都能将最大(或最小)的元素移动到合适的位置。
重复以上步骤,直到没有需要交换的元素,即整个列表有序。
时间复杂度:
冒泡排序的最坏时间复杂度为 O(n^2),平均时间复杂度也为 O(n^2)。
尽管效率不高,但适用于少量元素且元素顺序较乱的列表。
优化:
可以考虑在每一轮遍历中记录是否有元素交换,如果没有交换则表示列表已经有序,可以提前结束排序。
在一些特殊情况下,对于某些元素已经有序的列表,冒泡排序的最好时间复杂度可以达到 O(n)。
应用场景:
冒泡排序适合用于教学示例、小型数据集的排序,不适合大规模数据的排序应用。
题目一:
给定一个列表nums = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3],利用冒泡排序算法对该列表进行排序。
解题步骤:
定义一个函数bubble_sort,实现冒泡排序算法。
声明列表nums。
调用bubble_sort函数对列表nums进行排序。
输出排序后的列表。
题目二:
假设我们有一组学生成绩数据,需要将成绩从小到大排序。
# 学生成绩列表
scores = [85, 72, 90, 68, 78]
题目三
对一个字符串数组进行排序
fruit= ['apple', 'orange', 'banana' ]
题目四
对商品按照价格进行排序
d = [{'名字': '书包', '价格': 20},{'名字': '铅笔', '价格': 1}, {'名字': '本子', '价格': 3}]
$$