# 冒泡 最大的在最后面
def maopao(arr):
# 列表的长度-1=最大下标
index_max=len(arr)-1
# 外层循环
for i in range(index_max):
# 内存循环比大小
flag=False # 默认不需要交换
for x in range(index_max-i):
if arr[x]>arr[x+1]:
arr[x],arr[x+1]=arr[x+1],arr[x]
flag=True # 定义了需要交换的情况
if not flag: # 如果不需要交换
break
return arr
# 调用
if __name__ == '__main__':
test_arr=[9,2,0,1,7,9,0,5]
res=maopao(test_arr)
print(res)
# 冒泡 最大的在后面
lis=[4,3,2,1]
for j in range(len(lis)-1):#外循环了len-1次
flag = False #添加标记 没有交换
for i in range(len(lis) - 1):# 内循环后找到本次最大的放到了最后
if lis[i] > lis[i + 1]:
lis[i], lis[i + 1] = lis[i + 1], lis[i]
flag=True # 被标记交换了
# 如果已经是最大的最后,那么不需要交换 flag为假
if not flag:
break
print(lis)
lis=[4,3,2,1]
for j in range(len(lis)-1):#外循环了len-1次
for i in range(len(lis) - 1):# 内循环每次找到本次最大的放到了最后
if lis[i] > lis[i + 1]:
lis[i], lis[i + 1] = lis[i + 1], lis[i]
print(lis)