复杂性分析中对Theta符号的澄清。 Θ(克)

时间:2016-08-29 03:19:47

标签: algorithm time-complexity complexity-theory asymptotic-complexity big-theta

当我们谈论Θ(g)时,我们指的是g(n)的最高阶项,还是我们指的是g(n)究竟是什么?

例如,如果 f(n)= n 3 。并且 g(n)= 1000n 3 + n 确实Θ(g)意味着Θ(1000n 3 + n )或Θ(n 3 )?

在这种情况下我们可以说 f(n)是Θ(g)吗?

2 个答案:

答案 0 :(得分:1)

Θ( g )产生具有相同复杂度类的函数的。 Θ(1000 n 3 + n)等于Θ( n 3 ),因为这两者都导致同一套。

为简单起见,通常会删除非重要项和乘法常数。低阶加法项不会改变复杂性,也不会改变任何乘数,所以没有理由把它们写出来。

因为Θ( g )是一个集合,你会说 f n )∈Θ( g )。

注意:许多CS教师,教科书和其他资源使用不精确的符号使水域变得混乱。很多人说 f n )= n 3 O( n 3 ),而不是 f n )= n 3 O( n 3 )中。当他们的意思是ε时,他们使用=。

答案 1 :(得分:0)

theta(g(n))位于O(g(n))和omega(g(n))之间 如果g(n)= 1000n ^ 3 + n

首先找到O(g(n))上限 它可以是n ^ 3,n ^ 4,n ^ 5,但我们选择最接近的一个是O(n ^ 3)。

O(n ^ 3)是有效的,因为我们可以找到一个常数c,使得某些值为n 1000n ^ 3 + n< c.n ^ 3

秒让我们看到下限的omega(g(n)) 欧米茄说f(n)> C.G(n)的 我们可以找到一个常数c 1000.n ^ 3 + n> c.n ^ 3

现在我们有上限,即O(n ^ 3)和下限,即omega(n ^ 3)。 因此我们使用相同的函数来界定上下两个。

按规则:如果f(n)= O(g(n))且f(n)=ω(g(n))因此f(n)= theta(g(n))

1000.n ^ 3 + n = theta(n ^ 3)