温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python中怎么实现冒泡排序

发布时间:2021-07-02 16:04:03 来源:亿速云 阅读:167 作者:Leah 栏目:大数据

本篇文章给大家分享的是有关Python中怎么实现冒泡排序,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

冒泡排序(Bubble Sort)

冒泡排序算法:对无序表进行多趟地比较交换

每一趟对列表两两相邻元素进行比较,大的往后放,这样在所有元素比较完之后,当前列表的最大项就放到了末尾。然后再对前n-1个数据项进行冒泡排序……最终进行n-1趟冒泡排序,整个列表就排序完成(类似于“气泡”上浮过程)

Python中怎么实现冒泡排序

1. 第一趟冒泡:共有n-1对相邻数据进行比较交换

2. 第二趟冒泡:前面的n-1个数据项进行比较交换,共有n-2对相邻数据项进行比较交换

……

3. 直到第n-1趟冒泡排序:最小项一定就在列表的首位

故总共要进行n-1趟冒泡排序

第几趟
比对次数
第1趟n-1
第2趟
n-2
第3趟
n-3
……
……
第n-1趟
1

每进行一次冒泡排序后,就少了一个待比较元素。冒泡排序可不会从0次开始,是从1次开始到n-1次。最后一次冒泡只有两个元素,比较交换后就直接可以结束了

Python中怎么实现冒泡排序

Python中怎么实现冒泡排序

Python中怎么实现冒泡排序  
 

冒泡排序算法分析

对于冒泡排序而言,无论无序表中数据项如何排列,算法过程总是需要进行n-1趟冒泡排序。随着趟数增加,比对次数从n-1次减少到1次,故比对次数是1+2+3+……+n-1

(1/2)*n^2 - (1/2)*n

比对时间复杂度:O(n^2)

交换次数最好情况:交换次数为0(已经排序好了)

交换次数最坏情况:交换次数n-1次(每次比较都要交换)

交换时间复杂度:O(n^2)

故冒泡排序算法的时间复杂度:O(n^2)

Python中怎么实现冒泡排序  

小结:冒泡排序算法是时间复杂度比较差的一类算法,但有一点优势——冒泡排序不占任何额外存储空间

Python中怎么实现冒泡排序  
 

冒泡排序——改进

前言:虽然做了改进,但依然没有改变其时间复杂度Python中怎么实现冒泡排序Python中怎么实现冒泡排序Python中怎么实现冒泡排序

冒泡排序性能的缺陷在于:无论是否需要交换,都要进行比较。其实很多时候这样的比较是无意义的

若在某一趟冒泡排序中没有发生任何交换意味着什么?意味着已经排序好了,不用再进行后面的冒泡排序了。反之,只要进行了一次交换,则后面就要再进行一次冒泡排序

Python中怎么实现冒泡排序

以上就是Python中怎么实现冒泡排序,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI