当我们谈论Θ(g)时,我们指的是g(n)的最高阶项,还是我们指的是g(n)究竟是什么?
例如,如果 f(n)= n 3 。并且 g(n)= 1000n 3 + n 确实Θ(g)意味着Θ(1000n 3 + n )或Θ(n 3 )?
在这种情况下我们可以说 f(n)是Θ(g)吗?
答案 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)