我一直在观看麻省理工学院开放式课件网站上的一些视频讲座,在第三讲的视频中,讲师讨论了递归矩阵乘法,并提出了时间复杂度:
T(n) = Θ(n3)
对我来说很明显,我真的需要回顾一些我的数学,但我真的没有看到答案的连接以及主定理方法中提到的任何一个案例。我知道递归关系的形式如下:
对于n> T(n) = a*T(n/b) + f(n)
1.
使用此递归关系:a = 8
,b = 2
和f(n) = Θ(n2)
。
那么,他们是如何获得Θ(n3)
的?
他提到log28 = 3
,这是有道理的。但是,我只是无法使用f(n)
的值来确定示例递归关系对应的三种情况中的哪一种。
因为,案例2是唯一一个f(n) = Θ(anything)
,所以我猜这就是它。然而,我想我的问题与对数或指数的属性有关。
如果f(n) = Θ(nlog28 * (log2n)k+1)
那么你如何使用Θ(n3)
f(n)
到Θ(n2)
使用案例2?我可能在这里失踪的是什么?
答案 0 :(得分:1)
查看the Wiki page on the Master Theorem。
在讨论案例1时,他们讨论了这种非常精确的情况(a = 8,b = 2,f(n)= O(n 2 ))(不是案例2)。请注意,如果f(n)=Θ(n 2 ),则f(n)= O(n 2 ),因此可以应用案例1.
希望有所帮助。