首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

冒泡排序

冒泡排序

百度百科里描述冒泡排序算法的原理如下:

1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3. 针对所有的元素重复以上的步骤,除了最后一个。

4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

python代码实现

优化一:

如果某趟比较结束之后发现没有元素发生移动,则说明排序已经完成,可以直接跳出,设置一个flag来记录是否有元素发生移动。

优化二:

记录每趟排序结束时最后移动元素的位置,说明这个元素之后的所有元素已经排好序。

带入数据测试:

从运行结果可以看出,对于杂乱无章的数组来说,两种优化都不能有效提高算法效率,但对于顺序基本正确的数组,优化2可以显著提高效率。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181130G0BET600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券