Python之冒泡法

本文介绍了Python中的冒泡排序算法,详细讲解了冒泡排序的原理、升序和降序实现,以及如何通过设置标志位进行优化,讨论了冒泡排序在最好和最坏情况下的时间复杂度。
摘要由CSDN通过智能技术生成

冒泡法

简介:

    属于交换排序
    两两比较大小,交换位置。如同水咕嘟咕嘟往上冒
    结果分为升序和降序排列
升序
    n个数从左到右,编号从0开始到n-1,索引0和1的值比较,如果索引0大,则交换两者位置,如果索引1大,则不交换。继续比较索引1和2的值,将大值放在右侧。直至n-2和n-1比较完,第一轮比较完成。第二轮从索引0比较到n-2,因为最右侧n-1位置上已经是最大值了。依此类推,每一轮都会减少最右侧的不参与比较,直至剩下最后2个数比较。

降序
    和升序相反

冒泡法总结:

冒泡法需要数据一轮轮比较可以设定一个标记判断此轮是否有数据交换发生,如果没有发生交换,可以结束排序,如果发生交换,继续下一轮排序

  • 最差的排序情况是,初始顺序与目标顺序完全相反,遍历次数1,,n-1之和n(n-1)/2
  • 最好的排序情况是,初始顺序与目标顺序完全相同,遍历次数n-1
  • 时间复杂度O(n**2)
冒泡法示例:
num_list = [[1,9,8,5,6,7,4,3,2],[1,2,3,4,5,6,7,8,9]]
nums = num_list[1]
print(nums)
length =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值