望采纳
原始冒泡排序的Python代码:
def BubbleSort(arr):
n = len(arr)
for i in range(n):
for j in range(n-1-i):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
# 测试
print(BubbleSort([3, 1, 2, 5, 4])) # 输出: [1, 2, 3, 4, 5]
以下是完成加flag的优化版本的Python代码:
def BubbleSort_optimized(arr):
n = len(arr)
for i in range(n):
swapped = False
for j in range(n-1-i):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
swapped = True
if not swapped:
break
return arr
# 测试
print(BubbleSort_optimized([3, 1, 2, 5, 4])) # 输出: [1, 2, 3, 4, 5]
改进版的冒泡排序那不是快速排序。是这个意思嘛