Big Theta表示法 - 简化

时间:2013-04-21 17:00:15

标签: algorithm time-complexity master-theorem

我使用了主定理来解决递归关系。我把它归结为Θ(3n 2 -9n)。这是否等于Θ(n 2 ?我有另一个复发,其解是Θ(2n 3 - 100 2 。在BigTheta表示法中,你总是只使用最大的术语吗?所以我的第二个是Θ(n 3 ?在第二种情况下,似乎 100n 2 会更重要。如果我放弃它会有关系吗?

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

是。你的假设是正确的。第一个是Θ(n 2 ,第二个是Θ(n 3 。当您使用Θ表示法时,您只需要最大的术语。

如果您的第二次复发,请考虑n = 1000,然后 n 3 = 1000000000 。其中 100n 2 只是 100000000 。随着n值的增加,n 3 变得越来越多于100n 2

出于理论目的,你不需要考虑常数,它可能有多大。但实际应用可能更喜欢具有小常数的算法,即使复杂性很高。例如,使用复杂度 0.01n 3 的算法比使用 10000n 2 复杂度的算法更好如果 n 的值不是很大。

答案 1 :(得分:0)

如果我们有函数f(n)= 3n ^ 2-9n,可以忽略低阶项和costants,我们考虑更高阶项,因为它们在函数增长中起主要作用。 通过仅考虑更高阶项,我们可以很容易地找到上限,这是一个例子。

                  f(n)= 3n^2-9n
  For all sufficient large value of n>=1,
                                      3n^2<=3n^2 
                           and       -9n  <= n^2

                     thus, f(n)=3n^2 -9n <= 3n^2 + n^2
                                         <= 4n^2

  *The upper bound of f(n) is 4n^2 , that means for all sufficient large 
  value of n>=1, the value of f(n) wouldn't be greater than 4n^2.* 

                  therefore,           f(n)= Θ(n^2)  where c=4 and n0=1

enter image description here

我们可以直接找到上限,通过说忽略方程f(n)= 3n ^ 2-9n中的低阶项和常数,结果将是相同的Θ(n ^ 2)