python冒泡排序实验报告_Python实现冒泡排序

Python实现冒泡排序

简单说下,冒泡排序思路就是先从无排序的第一个元素依次与后面的元素做比较,获取比较中大的一方,小的一方放到前一位置,然后进行下次比较,最后找到本轮最大的一个后,将剩下的再进行一轮排序。

代码实现上可能各有不同,但是思路都是一样。

贴出我的实现,不是很简洁,debug了一段时间

lt = [1, 100, 2, 23, 23, 6, 41, 24, 24, 85, 56]

sorted_list = list()

for i in range(len(lt)): # 冒泡比较遍历次数

temp_max = None

for idx, v in enumerate(lt):

if not temp_max: # 将第一个取值作为临时最大值

temp_max = v

if temp_max <= v:

if idx == 0:

continue

else:

lt[idx-1], temp_max = temp_max, v

else:

lt[idx-1] = v

lt.pop() # 取出最后一个元素,剩余的元素开始新一轮排序

sorted_list.append(temp_max)

print(sorted_list)

运行结果

[100, 85, 56, 41, 24, 24, 23, 23, 6, 2, 1]

网络上的实现方法就很简洁,不需要额外的列表,在源列表中交换

1 #假设变量已经全部定义好

2 for i in range(len-1):

3 for j in range(len-1-i):

4 if a[j] > a[j+1]:

5 a[j], a[j+1] = a[j+1], a[j]

测试脚注,看来博客园支持markdown脚注! ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值