Python冒泡排序算法详解与代码示例

冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的列表,比较相邻元素并交换它们的位置,直到整个列表排序完成。

算法原理

  1. 从列表的第一个元素开始,比较相邻元素的大小。2. 如果当前元素大于下一个元素,则交换它们的位置。3. 继续比较下一对相邻元素,直到到达列表的末尾。4. 每次遍历列表都会将最大的元素移动到列表的末尾。5. 重复步骤1-4,直到整个列表排序完成。

Python代码示例

以下是使用Python实现的冒泡排序算法:pythondef bubble_sort(arr): n = len(arr) # 遍历所有数组元素 for i in range(n): # 在每一轮遍历中,将最大的元素移到末尾 for j in range(0, n-i-1): # 如果当前元素大于下一个元素,则交换它们 if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr

测试冒泡排序arr = [64, 34, 25, 12, 22, 11, 90]sorted_arr = bubble_sort(arr)print('排序后的数组:')print(sorted_arr)

在这段代码中:

  • bubble_sort(arr) 函数实现了冒泡排序算法。- 外层循环 for i in range(n) 控制遍历列表的次数。- 内层循环 for j in range(0, n-i-1) 比较相邻元素并交换它们的位置。- arr[j], arr[j+1] = arr[j+1], arr[j] 使用Python的元组打包和解包语法简洁地交换了两个元素的值。

示例结果

对于输入数组 [64, 34, 25, 12, 22, 11, 90],运行代码后的输出结果为:

排序后的数组:[11, 12, 22, 25, 34, 64, 90]

时间复杂度

冒泡排序的时间复杂度为O(n^2),其中n是待排序列表的长度。这意味着在最坏情况下,算法需要执行的比较和交换次数与列表长度的平方成正比。因此,对于大规模数据集,冒泡排序的效率较低。

总结

冒泡排序是一种简单易懂的排序算法,但效率较低,不适合处理大规模数据集。在实际应用中,通常会选择更高效的排序算法,如快速排序、归并排序等。

Python冒泡排序算法详解与代码示例

原文地址: https://www.cveoy.top/t/topic/shk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录