以下是冒泡排序的python算法:
def bubble(arr):for i in range(1, len(arr)):for j in range(0, len(arr) - 1):if arr[j] > arr[j + 1]: # 比较相邻两个元素大小arr[j + 1], arr[j] = arr[j], arr[j + 1] # 交换arr = [5, 3, 8, 4, 6]
bubble(arr)
print(arr)
时间复杂度
-
最坏情况:O(n²),当列表是逆序时。
-
最好情况:O(n),当列表已经有序时。
-
平均情况:O(n²)。
空间复杂度
-
O(1),因为冒泡排序是原地排序算法,不需要额外的存储空间。
优点: -
实现简单,代码易于理解。
-
原地排序,不需要额外的存储空间。
缺点:
-
效率较低,尤其是对于大规模数据集。
-
不适合处理几乎已经有序的列表,因为仍然需要进行多次遍历。