前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【说站】python冒泡排序算法的性能探究

【说站】python冒泡排序算法的性能探究

作者头像
很酷的站长
发布2022-11-24 10:19:08
2200
发布2022-11-24 10:19:08
举报
文章被收录于专栏:站长的编程笔记

python冒泡排序算法的性能探究

1、执行效率,分为最小时间复杂度、时间复杂度和平均时间复杂度。

最小时间复杂度:很好计算,最好的情况就是数据一开始就是有序的,因此一次冒泡即可完成,时间复杂度为 O(n)

时间复杂度:也很好计算,最坏的情况就是数据一开始就是倒序的,因此进行 n-1 次冒泡即可完成,时间复杂度为 O(n^2)

平均时间复杂度,严格来说平均时间复杂度就是加权平均期望时间复杂度,分析的时候要结合概率认的知识,对于包含 n 个数据的数组,有 n! 种排序方式,不同的排列方式,冒泡排序的执行时间肯定是不同的,如果要用概率认的方法定量分析平均时间复杂度,涉及的数据推理会很复杂,这里有一种思路,通过有序度和逆序度这两个概念来分析。有序度就是有顺序的元素的个数,比如 3,1 ,2 这三个数据有有序度为1 即 (1,2) 一个,相反,逆序度为 2,即(3,2)(3,1)这两个, 1, 2, 3 这三个数据的有序度为 3:(1,2)(1,3)(2,3),逆序度为 0,完全有序的数据序列的有序度也叫满有序度。

2、内存消耗。通过空间的复杂性来衡量,冒泡排序只需要一个变量。

Tmp存储交换数据,因此空间复杂度为O(1),空间复杂度为O(1)的排序算法,又称原排序算法。

3、稳定性。

对于排序算法,有一个重要的衡量指标,就是稳定性,这个概念是,如果待排序的序列中存在等值元素,则等值元素之间的原始顺序在排序后保持不变。假设有序列4,1,2,2,我们将第一个2叫2',第二个2叫2',如果排序后是1,2',2',4,那么这个排序算法就是稳定的,否则就是不稳定的。

以上就是python冒泡排序算法的性能探究,希望对大家有所帮助。更多Python学习指路:python基础教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • python冒泡排序算法的性能探究
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档