冒泡排序

冒泡排序:
lista=[34,19,20,30,10,5,88,40]
for i in range(len(lista)-1): #把小的往前挪,交换次数
for j in range(i+1,len(lista)): #遍历后面的元素
if lista[i]>lista[j]: #判断是否小于后面的元素
lista[j],lista[i]=lista[i],lista[j] # 交换位置
pass
pass
print(lista)

具体步骤:
第一轮: i=0,外部循环第一次
[19,34,20,30,10,5,88,40] j=1 判断list[0]与list[1]的大小
[19,34,20,30,10,5,88,40] j=2 判断list[0]与list[2]的大小,20>19,不变
[19,34,20,30,10,5,88,40] j=3,判断list[0]与list[3]的大小,30>19
[10,34,20,30,19,5,88,40] j=4,判断list[0]与list[4]的大小,10<19,交换位置
[5,34,20,30,19,10,88,40] j=5,判断list[0]与list[5]的大小,5<10,交换位置
[5,34,20,30,19,10,88,40] j=6,判断list[0]与list[6]的大小,5<88,不变
[5,34,20,30,19,10,88,40] j=7,判断list[0]与list[7]的大小,5<40,不变
第二轮:i=1,外部循环第二次
与上述同理,用list[1]分别判断list[2]到list[7]

[5,20,34,30,19,10,88,40] j=2,判断list[1]与list[2]的大小,20<34,交换位置
最后第二轮变化得到:[5,10,34,30,20,19,88,40]

第三轮:i=2,外部循环第三次
与上述同理,用list[2]分别判断list[3]到list[7]
经过第三轮的变化得到[5,10,19,34,30,20,88,40]

第四轮:i=3外部循环第四次
与上述同理,用list[3]分别判断list[4]到list[7]
最后得到[5,10,19,20,34,30,88,40]

第五轮:i=4 外部循环第五次
与上述同理,用list[4]分别判断list[5]到list[7]
最后得到[5,10,19,20,30,34,88,40]

第六轮:i=5 外部循环第六次
与上述同理,用list[5]分别判断list[6]到list[7]
最后得到[5,10,19,20,30,34,88,40]

第七轮:i=6 外部循环第七次
与上述同理,用list[6]分别判断list[7]
最后得到[5,10,19,20,30,34,40,88]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值