Python冒泡

先自定义一个无序列表

list=[2,4,6,9,5,6,1]

冒泡就是两两相比,大的冒泡去到最后,小的冒泡来到最前面
在这里插入图片描述
首先做第一个数字的冒泡循环比较.

list=[2,4,6,9,5,6,1]
for i in range(0,len(list)-1) 
	if list[i]>list[i+1]:
		list[i],list[i+1]=list[i+1],list[i]  # 对第一个数字的冒泡的比较

一个列表有多个数字,也是要多次循环重复比较第二个第三个。。。。。

list=[2,4,6,9,5,6,1]

for j in range (0,len(list)-1)   


	for i in range(0,len(list)-1) 
		if list[i]>list[i+1]:
			list[i],list[i+1]=list[i+1],list[i] 
print(list)   

到了这一步,是可以实现功能的,但是还可以优化
第一个数冒泡要 len(list)-1 次,但是第二个是不用冒这么多次的泡的,因为第一次冒泡的时候,最后的数字一定是最大的,这个泡是排好了。就要优化循环的次数了。
len(list)-1-j 次

list=[2,4,6,9,5,6,1]

for j in range (0,len(list)-1)   


	for i in range(0,len(list)-1-j) 
		if list[i]>list[i+1]:
			list[i],list[i+1]=list[i+1],list[i] 
print(list)  

也可以统计下次数

list=[2,4,6,9,5,6,1]
count=0
for j in range (0,len(list)-1)   


	for i in range(0,len(list)-1-j) 
		if list[i]>list[i+1]:
			list[i],list[i+1]=list[i+1],list[i] 
	count+=1
print(list,count)  

当然,有个不用冒泡的方法,Python的内置函数 sort
sorted(list)
也可以出来

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值