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

关键特性
- 排序类型:交换排序
- 时间复杂度:最坏情况/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

Python3 实例