我正在学习算法分析。我无法理解 O、Ω 和 Θ 之间的区别。
它们的定义方式如下:
f(n) = O(g(n))均值c · g(n)是 的上界f(n)。因此,存在一些常数c,对于足够大 (即,对于某个常数) ,f(n)总是 ≤ 。c · g(n)nn ≥ n0n0f(n) = Ω(g(n))均值c · g(n)是 的下界f(n)。因此,存在一些常数,对于所有c,f(n)总是 ≥ 。c · g(n)n ≥ n0f(n) = Θ(g(n))对于 all 来说,meansc1 · g(n)是 的上界f(n),c2 · g(n)也是 的下界。因此存在常数和 这样的和。这意味着 对.f(n)n ≥ n0c1c2f(n) ≤ c1 ·g(n)f(n) ≥ c2 ·g(n)g(n)f(n)
我理解的方式是:
O(f(n))给出给定函数/算法的最坏情况复杂度。Ω(f(n))给出给定函数/算法的最佳情况复杂度。Θ(f(n))给出给定函数/算法的平均案例复杂度.
如果我错了,请纠正我。如果是这种情况,每个算法的时间复杂度必须用所有三种符号表示。但我观察到它表示为 O、Ω 或 Θ;为什么不是全部三个?