冒泡排序
# 冒泡 最大的在最后面
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)