"""排序思路:列表可乱序,从第一个数开始往后查找,每次查找把左右两个数比较后交换,
一次排序后出现一个最大值还活着最小值在最后或者最前,需要进行n-1趟,但是可以使用标记的方式,当当前这一趟列表"""
def bubble_sort(li):
for i in range(len(li)-1):
flag=False
for j in range(len(li)-1-i): #从已经排好序的找前面的数
if li[j]>li[j+1]: #如果都找不到后面的大于前面的,flag=False
li[j],li[j+1]=li[j+1],li[j]
flag=True
if not flag:
#当进入循环,发生交换,说明还没结束,循环继续,当not flag =True,说明flag=False,说明进入第二层循环后没有交换
break
return li
li=[96,3,4,6984,13,468]
print(bubble_sort(li))
算法吧-冒泡排序
最新推荐文章于 2024-06-30 17:18:45 发布