def bubble_sort(alist):
"""冒泡排序"""
n = len(alist)
# 外层循环控制从头走到尾的次数
for j in range(n-1):
# j [0, 1,2,...n-2]
#n-2-j
count = 0
# 内层循环控制从头走到尾的遍历
for i in range(0, n-1-j):
if alist[i] > alist[i+1]:
alist[i], alist[i+1] = alist[i+1], alist[i]
count += 1
if 0 == count:
break
if __name__ == '__main__':
li = [54, 26, 77, 17, 77, 31, 44, 55, 20]
print(li)
bubble_sort(li)
print(li)
冒泡排序最坏的时间复杂度为o(n*n) 加上判断之后 最优时间复杂度 o(n)
冒泡排序的稳定性好
冒泡排序的方法 是先找到一个最大的向后面排,依次把整个列表排序完毕
python中也可直接用 列表名.sort() 进行升序排序
list1 = [1,2,5,3,4,6,7,8]
list1.sort(reverse=True) # 升序
list1.sort(reverse=Flase) # 降序