冒泡算法 python

『凌乱』 2019-10-29 11:09:15
1、冒泡排序 核心算法: 在数组x[n]中,从第一个数开始,拿x[i]和后面的数x[i+1]进行比较,如果x[i]比后面的大,就交换两个数的位置,这样遍历一遍数组后,把最大的数据排在了最后面,之后继续循环排剩下的n-1个数,直到完成所有的排序,由于每次都是把最大的排到最后面,就好像冒泡一样,故取名冒泡排序。 代码如下: def bubbleSort(x):    xLen = len(x)    for i in xrange(xLen-1):        for j in xrange(xLen -1-i):            if x[j] > x[j+1]:                 t = x[j]                 x[j] = x[j+1]                 x[j+1] = t    return x if __name__ == '__main__':     #冒泡排序演示    print bubbleSort([34,123,12,34,545]) 时间复杂度计算: 当我们遍历第1遍时,比较了n-1次,把最大的数排在了x[n-1]的位置; 第2遍比较了n-2次,把第二大的数排在了x[n-2]的位置; ... 第n-1遍比较了1次,把倒数第二大的数排在了x[1]的位置。 这样,我们总共比较的次数是1+2+3+...+(n-1)= n(n-1)/2 在计算时间复杂度时,我们一般使用的大表示法,其时间复杂度,从小到大的排序是: (1)<(logn)<(n)<(nlogn)<(n^2)<...<(2^n)<(n!) 我们上面所求得的n(n-1)/2,其时间复杂度,最大的影响因子是n^2,故其时间复杂度是(n^2) ---------------------- 在纸上快速写出来上述算法的你超过了90%的测试人!加油! 剩下10%的测试人会强迫自己把各种排序,队列,堆栈算法都自行写了出来。
...全文
42 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5,177

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 质量管理/软件测试
功能测试压力测试安全性测试 个人社区 湖南省·长沙市
社区管理员
  • 软件测试
  • 虫无涯
  • 小博测试成长之路
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎大家加入到软件测试的社区,在这里,希望大家勇于发表自己的看法,欢迎大家分享自己在软件测试工作过程中遇到的问题以及工作经验分享。

1.想转行的小伙伴,遇到问题没有及时回复的,可以私聊小博进行反馈

2.大家对社区有好的建议,都可以在社区发帖进行反馈

推荐大家学习的软件测试入门笔记:软件测试入门学习笔记

试试用AI创作助手写篇文章吧