当存在三个术语时应用主定理?
Posted
技术标签:
【中文标题】当存在三个术语时应用主定理?【英文标题】:Applying the Master Theorem when there are three terms? 【发布时间】:2013-10-24 22:39:53 【问题描述】:我将如何使用主定理解决这种递归?
T(n) = 4T(n/2) + n2 + logn
我不知道该怎么做,但我很确定可以使用 Master Theorem 解决它。我必须忽略其中一个条款吗?任何帮助表示赞赏,谢谢。
【问题讨论】:
【参考方案1】:主定理适用于可以写成的函数
T(n) = aT(n / b) + f(n)
在这里,您有 a = 4、b = 2 和 f(n) = n2 + log n。请注意,我们将“n2 + log n”组合为 f(n) 项,而不是将其视为两个单独的项。
现在我们已经完成了,我们可以直接应用主定理。注意 logb a = log2 4 = 2 并且 f(n) = Θ(n2),所以由主定理这解决了 Θ(n2 log n)。之所以可行,是因为 n2 + log n = Θ(n2),而主定理只关心 f(n) 的渐近复杂度。事实上,这些重复中的任何一个都可以用相同的方式解决:
T(n) = 4T(n / 2) + n2 + 137n + 42
T(n) = 4T(n / 2) + 5n2 + 42n log n + 42n + 5 log n + 106
T(n) = 4T(n / 2) + 0.5n2 + n log137 n + n log n + n2 / log n + 5
希望这会有所帮助!
【讨论】:
以上是关于当存在三个术语时应用主定理?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Ruby,当术语之间可能存在可变空格时,如何将字符串转换为数组?
AS3 中的“TypeError:错误 #1010:术语未定义且没有属性”