野牛程序员讲少儿编程之冒泡排序:Python 版,轻松学会排序!
作者:野牛程序员:2025-03-14 09:55:32python阅读 2125
野牛程序员讲少儿编程之冒泡排序:Python 版,轻松学会排序!
🚀 野牛程序员讲少儿编程之冒泡排序:Python 版,轻松学会排序!🎈
👶 适合孩子学习的冒泡排序讲解,通俗易懂,边玩边学!
🌊 什么是冒泡排序?
冒泡排序(Bubble Sort)是一种非常简单的排序算法,它的原理就像水里的气泡一样,大的气泡会慢慢往上浮,小的气泡会留在下面。
在数字排序里,就是大的数字会往后移动,最终变成从小到大的顺序! 📈
🎯 冒泡排序的工作原理
两两比较相邻的数字,如果前面的比后面的大,就交换它们的位置。
一轮循环后,最大的数字会“冒泡”到最后。
重复这个过程,直到所有的数字都排好序。
📌 Python 代码示例:冒泡排序
1 2 3 4 5 6 7 8 9 10 11 12 | 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]
:如果前面的数比后面的大,就互换位置。
🎮 试试看!
如果输入:
1 | numbers = [ 5 , 2 , 9 , 1 , 5 , 6 ] |
执行后,输出:
1 2 | 排序前: [ 5 , 2 , 9 , 1 , 5 , 6 ] 排序后: [ 1 , 2 , 5 , 5 , 6 , 9 ] |
大数字自己乖乖地跑到后面去了!🏃♂️💨
💡 野牛程序员进阶优化
普通的冒泡排序每次都遍历整个数组,有时候排序已经完成但程序还在继续。可以加个标志位 swapped
,如果一轮下来没有发生交换,就可以提前停止,提高效率!🚀
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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
