排序算法-冒泡排序(python3.0代码)

这篇博客详细介绍了冒泡排序的原理和步骤,包括其稳定性特点,并通过三种不同方式展示了Python3实现冒泡排序的代码,分别是一般的实现、逐步输出过程以及仅获取最终排序结果的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是冒泡排序:

冒泡排序是相邻的两个元素相互比较,如果按照从小打到大排序,那么两两元素比较后,小的元素放前面,大的元素放后面。一一比较,直到所有的元素比较完。
步骤:
第一对元素比较:比较第1个元素和第2个元素,将小的元素放前面,大的元素放后面。
第二对元素比较,也就是第2个元素和第3个元素的大小比较,同样小的放前面,大的元素放后面。

第一趟直到最后一对元素大小的比较,小的放在前面,大的放在后面。
直到所有的元素第一趟比较结束后,最后的这个元素一定是数组中最大的元素。
重复以上步骤(最后一个元素不参加大小比较),当第二趟结束比较后,倒数第二个元素便是数组中倒数第二大的元素。当进行第三趟元素大小比较时,同理,倒数第二个元素不参加大小比较。
举个栗子:
对 1,5,4,2,7冒泡排序
第一趟:
1): 1,5,4,2,7(1和5 比较)
2):1,4,5,2,7(5和4比较)
3):1,4,2,5,7(2和5比较)
4):1,4,2,5,7(5和7比较)
比较4次后,最大的元素沉到数组的末尾,7是最大的元素;
第二趟排序:
对 1,4,2,5冒泡排序
1):1,4,2,5
2):1,2,4,5
3):1,2,4,5
比较3次后,改数组中最大的元素为5 ,也就是5是倒数第二大元素
以此类推,对前后的元素进行排序,得到最终的结果。

冒泡排序的稳定性

什么是稳定性?
当对数组中两个大小一样的元素进行排序比如对1,2,2排序,当第二个元素2和第三个元素2相比较时,此时两个元素大小相同,不用将两个大小一致的元素互换位置,因为冒泡排序是稳定的排序方式。

**算法复杂度比较

当数组中的元素按照从小到大的顺序排序时,此时是最好的情况,此时最佳时间复杂度为O(n),
如果数组中的元素按反顺序排序时,则所有的元素都要更换位置,此时最坏时间复杂度为O(n^2 )。
因此平均时间复杂度为O(n^2 )。

用python3.0代码实现的冒泡算法

一:在这里插入图片描述
结果如下:
在这里插入图片描述
二:引入二分法,逐步输出结果
在这里插入图片描述此时每一步骤的结果都输出,结果如下
在这里插入图片描述
三:只得到最终的排序结果,代码如下:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值