求助一个计算算法复杂度的问题?

求助,一个计算算法复杂度的问题!万分感谢

正确答案是A和C。我想知道为什么不是Ω(n^2)以及θ(n^2)。

阅读 841
1 个回答

第一个 for 需要循环 \( n-1 \) 次

第二个 for 有两个条件

  • 如果每一个 a[j-1] 都大于 a[j],那么它要循环 \(n\)次;
  • 如果数组已经有序,也就是每一个 a[j-1] 都小于 a[j],那么它只需要循环 \(1\)次

那么我们可以得到这段代码的上界为

$$ O((n-1)n) = O(n^2) $$

这段代码的下界为

$$ \Omega((n-1) \cdot 1) = \Omega(n) $$