我使用了主定理来解决递归关系。我把它归结为Θ(3n 2 -9n)。这是否等于Θ(n 2 )?我有另一个复发,其解是Θ(2n 3 - 100 2 )。在BigTheta表示法中,你总是只使用最大的术语吗?所以我的第二个是Θ(n 3 )?在第二种情况下,似乎 100n 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
我们可以直接找到上限,通过说忽略方程f(n)= 3n ^ 2-9n中的低阶项和常数,结果将是相同的Θ(n ^ 2)