python冒泡排序算法详解(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基础教程
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!