解释冒泡排序的平均时间复杂度

时间:2015-03-14 15:39:21

标签: big-o time-complexity bubble-sort

我知道冒泡排序的平均时间复杂度为O(n ^ 2)。任何人都可以解释如何计算这种复杂性?我经常发现只是人们说这是平均的复杂性,但我不知道为什么。 (换句话说,从1到n的数字随机排列的平均复杂度是多少)

1 个答案:

答案 0 :(得分:-1)

如果复杂度为O(n ^ 2),则表明算法必须对输入的两个元素的每个组合执行一些操作。

首先,请注意冒泡排序比较相邻的项目,如果它们出现故障则将它们交换。

最佳情况下,冒泡排序为O(n)。这是列表已经排序的时候。它可以传递一次列表,只需要将每个项目与其邻居进行一次比较,然后再确定它已经排序。

O(n ^ 2)是冒泡排序的最差情况。这是输入列表已经反向排序的时候。考虑一下算法如何将第一项从索引0移动到索引n-1的排序位置。它必须将该项目与每个其他项目进行一次比较(n次操作)。它用每个项重复这个过程,因此O(n ^ 2)。