python冒泡算法对列表排序,冒泡排序算法在最好的情况下

  python冒泡算法对列表排序,冒泡排序算法在最好的情况下

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

  最小时间复杂度:很容易计算。在最好的情况下,数据在开始是有序的,所以可以在一个气泡内完成,时间复杂度为O(n)

  时间复杂度:也很容易计算。最坏的情况下,数据在开始时是逆序的,所以可以通过执行n-1次冒泡来完成,时间复杂度为O (n 2)。

  平均时间复杂度,严格来说,平均时间复杂度就是加权平均期望时间复杂度。分析的时候要结合概率识别的知识。对于包含n个数据的数组,有n!不同的排序方式,不同的排序方式,冒泡排序的执行时间肯定是不一样的。如果用概率识别的方法对平均时间复杂度进行定量分析,所涉及的数据推理会非常复杂。这里有一个思路,通过序度和逆序度的概念来分析。有序度是有序元素的数量。例如,3,1,2的有序度为1,即(1,2)1。反之,逆序度为2,即(3,2)(3,1)二,1,2,3的序度为3: (1,2)(1,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电脑。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: