为什么用大O表示法而不是Theta表示算法的复杂性



我知道Big O、Theta和Omega符号是什么,但例如,如果我的算法是for内部的for,循环n次,我的复杂性将是O(n²(,但为什么是O(n²(而不是ϴ(n²?由于复杂性实际上是O(n²(和Ω(n²。

如果是f(n) = Θ(g(n)),则是f(n) = O(g(n))。这是因为Θ(g(n)) ⊆ O (g(n))

在您的特定情况下,如果循环恰好运行n^2时间,则时间复杂性在O(n^2)Θ(n^2)
big-O通常足够的主要原因是,在分析算法性能时,我们对最坏情况下的时间复杂性更感兴趣,而了解最坏情况通常就足够了。此外,并非总是可以找到一个严格的界限。

最新更新