冒泡排序的运行时复杂性

时间:2014-09-27 22:32:53

标签: algorithm sorting

我正在查看wiki中的冒泡排序算法,似乎最糟糕的情况是o(n2)

我们来看一个array size的n。

int a = [1,2,3,4,5.....n]

对于任何n个元素,因此比较总数为(n - 1) + (n - 2)...(2) + (1) = n(n - 1)/2 or O(n2)

任何人都可以解释我n(n-1)/2如何等于o(n2)。我无法理解他们如何得出结论,这个算法的最坏情况分析是o(n2)

1 个答案:

答案 0 :(得分:0)

他们正在研究N越来越接近无穷大的情况。因此n(n-1)/2实际上与n*n/2n^2 / 2相同。

因为他们只关注时间(运行所需的时间)随着N的增加而增加,这意味着常数是无关紧要的。在这种情况下,当N加倍时,算法执行需要4倍的时间。因此,我们最终得到n^2O(n^2)