野牛程序员讲少儿编程之冒泡排序:Python 版,轻松学会排序!
作者:野牛程序员:2025-03-14 09:55:32python阅读 2232
野牛程序员讲少儿编程之冒泡排序:Python 版,轻松学会排序!
🚀 野牛程序员讲少儿编程之冒泡排序:Python 版,轻松学会排序!🎈
👶 适合孩子学习的冒泡排序讲解,通俗易懂,边玩边学!
🌊 什么是冒泡排序?
冒泡排序(Bubble Sort)是一种非常简单的排序算法,它的原理就像水里的气泡一样,大的气泡会慢慢往上浮,小的气泡会留在下面。
在数字排序里,就是大的数字会往后移动,最终变成从小到大的顺序! 📈
🎯 冒泡排序的工作原理
两两比较相邻的数字,如果前面的比后面的大,就交换它们的位置。
一轮循环后,最大的数字会“冒泡”到最后。
重复这个过程,直到所有的数字都排好序。
📌 Python 代码示例:冒泡排序
def bubble_sort(arr): n = len(arr) for i in range(n - 1): # 控制排序轮数 for j in range(n - 1 - i): # 逐个比较相邻元素 if arr[j] > arr[j + 1]: # 如果前面的数比后面的大,交换 arr[j], arr[j + 1] = arr[j + 1], arr[j] # 测试 numbers = [5, 2, 9, 1, 5, 6] print("排序前:", numbers) bubble_sort(numbers) print("排序后:", numbers)
🧐 野牛程序员代码解析
外层循环
for i in range(n - 1)
:控制排序的轮数,每一轮都会把一个最大的数放到最后。内层循环
for j in range(n - 1 - i)
:让大的数慢慢“冒泡”到后面。交换
arr[j], arr[j + 1] = arr[j + 1], arr[j]
:如果前面的数比后面的大,就互换位置。
🎮 试试看!
如果输入:
numbers = [5, 2, 9, 1, 5, 6]
执行后,输出:
排序前: [5, 2, 9, 1, 5, 6] 排序后: [1, 2, 5, 5, 6, 9]
大数字自己乖乖地跑到后面去了!🏃♂️💨
💡 野牛程序员进阶优化
普通的冒泡排序每次都遍历整个数组,有时候排序已经完成但程序还在继续。可以加个标志位 swapped
,如果一轮下来没有发生交换,就可以提前停止,提高效率!🚀
def optimized_bubble_sort(arr): n = len(arr) for i in range(n - 1): swapped = False # 标记是否发生交换 for j in range(n - 1 - i): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] swapped = True # 发生交换,标记为 True if not swapped: # 如果一轮下来没有交换,说明已经有序 break # 测试优化版 numbers = [3, 1, 4, 1, 5, 9, 2] print("排序前:", numbers) optimized_bubble_sort(numbers) print("排序后:", numbers)
这样可以减少不必要的比较,让排序更快!🎯
🎉 野牛程序员总结
冒泡排序是最简单的排序方法之一,适合初学者练习 Python 的基本语法 和 循环逻辑。
学会了这个,还可以继续学习选择排序、快速排序,挑战更高难度的算法!🚀
试着自己写一遍代码,把自己的名字用字母排序,看看效果吧!💡
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
