Python冒泡排序算法详解与代码示例
Python冒泡排序算法详解与代码示例
冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的列表,比较相邻元素并交换它们的位置,直到整个列表排序完成。
算法原理
- 从列表的第一个元素开始,比较相邻元素的大小。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是待排序列表的长度。这意味着在最坏情况下,算法需要执行的比较和交换次数与列表长度的平方成正比。因此,对于大规模数据集,冒泡排序的效率较低。
总结
冒泡排序是一种简单易懂的排序算法,但效率较低,不适合处理大规模数据集。在实际应用中,通常会选择更高效的排序算法,如快速排序、归并排序等。
原文地址: https://www.cveoy.top/t/topic/shk 著作权归作者所有。请勿转载和采集!