# 冒泡排序:基础冒泡排序,每趟比较次数减1次
lst = [1, 9, 8, 5, 6, 7, 4, 3, 2]
length = len(lst)
for i in range(length):
for j in range(length-i-1):
if lst[j] > lst[i]:
tmp = lst[j]
lst[j] = lst[j+1]
lst[j+1] = tmp
print(lst)
# 冒泡排序:某一趟扫描,如果发现没有可交换的,可以退出
lst = [1, 2, 3, 4, 5, 6, 7, 9, 8]
length = len(lst)
for i in range(length):
flag = False
for j in range(length-i-1):
if lst[j] > lst[i]:
tmp = lst[j]
lst[j] = lst[j+1]
lst[j+1] = tmp
flag = True
if not flag: # 内部循环一趟后,发现flag不是True,表示没有交换
break # 没有交换退出外层循环,冒泡排序结束
print(lst)
# 冒泡排序:时间复杂度O(n平方)