冒泡排序c++_Python 冒泡排序

a68cbf510e28033e5133fe2ab0a52107.gif 捏脸求关注~

快,关注这个公众号

一起涨姿势

百度百科对冒泡排序的算法原理描述:

1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3、针对所有的元素重复以上的步骤,除了最后一个。
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

源代码:
a = [500, 432, -23, 73, 98, 23, -765, 11, 0, 69, 4]
b = len(a) - 1
while b:
for i in range(b):
j = i + 1
if a[i] > a[j]:
a[i], a[j] = a[j], a[i]
b -= 1 # b = b -1
print(a) # 需注意print的缩进位置,输出每一次遍历后的结果
# print(a) # 输出最终结果

3c0f2cf3e8bcc6023588473522305e2f.png

输出每次遍历结果

其中 a[k], a[l] = a[l], a[k] 可以改成 c = a[k], a[k] = a[l], a[l ] =c,c相当于临时变量
另外代码还可以进行优化,将条件 b 放到 for 循环中
for i in range(b, 0, -1)---------含义:b-0是范围,每次循环结束后减1

23493e32f9b49fa3ed51c5a8e114777b.png

调试过程

总结

其实算法不难,先理清思路问题就变得简单了,然后就可以尝试着输出代码了,debug 是个很好的帮手,一步步调试看数据是如何变化的,可以更好的理解程序是怎么实现这段代码的

请思考:如何一行代码搞定(顺序 or 倒序显示)

公布答案(可以复制代码到 IDE 中执行查看结果)

print(sorted(a))   #  顺序
print(sorted(a, reverse=True)) # 倒序

注解:
sorted函数 不会改变列表本身(可理解为先复制列表,再顺序整理),参数 reverse 用于逆序排序

4131b050f49290352ee54ce4872f8730.png

在右下角戳一个小花花0aba415ba299aabf965325401ef95c7a.png

你是最好看的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值