冒泡排序是通过重复遍历列表、比较相邻元素并交换使较大(或较小)元素逐步“冒泡”至一端的排序算法;Python实现中,外层控制轮数,内层两两比较交换,可用flag优化提前终止。

冒泡排序是一种基础的排序算法,原理简单:重复遍历列表,比较相邻元素,把较大的(或较小的)逐个“冒泡”到一端。Python 实现起来很直观,适合理解排序逻辑。
核心思路:每轮遍历把当前未排序部分的最大值移到末尾。
说明:外层循环控制轮数(最多 n-1 轮),内层循环负责两两比较和交换;每轮结束后,末尾元素就已就位,所以下一轮范围可缩小。
建议写法:
立即学习“Python免费学习笔记(深入)”;
示例代码:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
swapped = False # 标记本轮是否发生交换
for j in range(0, n - 1 - i):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
swapped = True
if not swapped:
break
return arr
<h1>测试</h1><p>nums = [64, 34, 25, 12, 22, 11, 90]
print(bubble_sort(nums)) # [11, 12, 22, 25, 34, 64, 90]
把内层判断条件 arr[j] > arr[j + 1] 改成 arr[j] 即可,其余逻辑完全不变。
上面的实现是原地修改输入列表。如果想保留原列表不变,可以先复制一份:
基本上就这些。冒泡排序时间复杂度是 O(n²),不适合大数据量,但写起来快、逻辑清晰,是入门必练算法之一。
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号