Big Theta符号公式令人困惑,需要清晰

时间:2018-05-03 10:06:15

标签: algorithm asymptotic-complexity

如果Big Theta符号的数学规则是:

f(n) = Theta (g(n)) if and only if f(n) >= cg(n) for some c after n >= n0 >=0

然后当f(n)= 5n 2 时,我们将其视为Theta(n 2
考虑到5n 2 > = n 2 ,c = 1且n 0 = 0

为什么不f(n)= theta(n)
考虑到5n 2 > = n对于c = 1且n 0 = 0 ??

1 个答案:

答案 0 :(得分:2)

首先,Theta(g)设置的功能。所以从技术上讲,你需要写f in Theta(g)而不是f = Theta(g)

非正式Theta(g)包含所有增长同样强大(渐近)的函数。所以它就像渐近=(等于)。

部分f位于Theta(g),如果它位于O(g)Omega(g)中。

现在举个例子。我们有f(n) = 5n^2。如你所说,它位于Theta(n^2)Theta(n)。您的示例是c = 1n_0 = 0

此时您的公式错误。 Big-O的定义是

enter image description here

因此,使用<=而不是>=,那将是Big-Omega。

我们得到了

5n^2 <= 1 * n

对于您的值,让我们为所有n >= n_0 = 0

绘制它

enter image description here

如图所示,对于所有f1 * g 小于n >= n_0。因此,它不在O(n)

由于Theta同时代表OOmega,如果您不在Theta,则无法O。< / p>