1、执行效率分为最小时间复杂度、时间复杂度和平均时间复杂度。
最小时间复杂度:很容易计算。最好的情况是数据一开始是有序的,所以可以一次冒泡完成,时间复杂度是。 O(n)
时间复杂性:也很容易计算。最糟糕的情况是数据在开始时是倒序的,所以 n-1 第二次冒泡可以完成,时间复杂度为 O(n^2)
平均时间的复杂性,严格来说,平均时间的复杂性是加权平均预期时间的复杂性。在分析时,我们应该结合概率识别的知识 n 数据数组,有 n! 不同的排序方法,不同的排列方法,泡沫排序的执行时间必须不同,如果你想使用概率识别方法来定量分析平均时间的复杂性,数据推理将非常复杂,这里有一个想法,通过有序和逆序分析这两个概念。有序是有序元素的数量,比如 3,1 ,2 这三个数据的有序程度为1 即 (1,2) 相反,逆序度是 二、即(3,2)(3,1)这两个, 1, 2, 3 这三个数据的有序性是 3:(1、2)(1、3)(2、3) 完全有序的数据序列的有序性也称为全有序性。
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电脑。