# coding=utf-8
# def magic_bubble_sort(numbers):
# num = len(numbers)
# for j in range(num - 1):
# print('j===', j)
# for i in range(num - j - 1):
# print('i', i)
# if numbers[i] > numbers[i + 1]:
# numbers[i], numbers[i + 1] = numbers[i + 1], numbers[i]
# print(numbers[i], numbers[i + 1])
# return numbers
def magic_bubble_sort(numbers):
for i in range(len(numbers) - 1):
#print('i', i)
ex_flag = False # 改进后的冒泡,设置一个交换标志位
#print('1ex', ex_flag)
for j in range(len(numbers) - i - 1):
if numbers[j] > numbers[j + 1]:
numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j]
ex_flag = True
#print(ex_flag)
#print(numbers)
if not ex_flag:
return numbers # 这里代表计算机偷懒成功 (〃'▽'〃)
return numbers # 这里代表计算机没有偷懒成功 o(╥﹏╥)o
if __name__ == '__main__':
numbers = [23, 32, 1, 3, 4, 19, 20, 2, 4]
print(magic_bubble_sort(numbers))
链接: python排序算法之一:冒泡排序(及其优化)