def bubble_sort1(alist):
"""冒泡排序"""
n = len(alist)
for j in range(n - 1): # j: 0, 1, 2, ..., n-2
count = 0
# 从列表头到尾比较一次
for i in range(n - 1 - j): # i: n-2, n-3, n-4, ..., 1
if alist[i] > alist[i + 1]:
alist[i], alist[i + 1] = alist[i + 1], alist[i]
count += 1
# 从头到尾比较, 如果没有交换, 停止
if count == 0:
return
def bubble_sort2(alist):
"""冒泡排序"""
n = len(alist)
for j in range(n - 1, 0, -1): # n-1, n-2, ..., 1
count = 0
# 从列表头到尾比较一次
for i in range(j): # n-2, n-1, ..., 0
if alist[i] > alist[i + 1]:
alist[i], alist[i + 1] = alist[i + 1], alist[i]
count += 1
# 从头到尾比较, 如果没有交换, 停止
if count == 0:
return
if __name__ == '__main__':
lst = [45, 36, 18, 44, 66, 78, 11, 24]
print(lst)
bubble_sort2(lst)
print(lst)
原文:https://www.cnblogs.com/KX-Lau/p/12504139.html