Python 冒泡排序

Document 对象参考手册 Python3 实例

冒泡排序是一种简单的交换排序算法,其核心工作原理是:

  1. 重复地遍历待排序的列表,一次比较相邻的两个元素
  2. 如果两个元素的顺序不符合要求(比如升序排序时前一个元素大于后一个),就交换它们的位置
  3. 每一轮遍历都会将当前未排序部分的最大元素冒泡到末尾(升序场景),如同气泡上浮一样;
  4. 重复上述过程,直到整个列表完全有序(没有交换操作发生或遍历完所有元素)。

关键特性

  • 排序类型:交换排序
  • 时间复杂度:最坏情况/O(n²)(列表完全逆序)、平均情况/O(n²)、最好情况/O(n)(优化版,列表已有序)
  • 空间复杂度:O(1)(原地排序,无需额外辅助空间)
  • 稳定性:稳定排序(相等元素的相对位置不会改变)

实例

def bubbleSort(arr): n = len(arr) # 遍历所有数组元素 for i in range(n): # 最后 i 个元素已经处于正确的位置(无需再比较) for j in range(0, n-i-1): if arr[j] > arr[j+1] : arr[j], arr[j+1] = arr[j+1], arr[j] arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print ("排序后的数组:") for i in range(len(arr)): print ("%d" %arr[i]),

执行以上代码输出结果为:

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

Document 对象参考手册 Python3 实例