如果有人可以帮我解决几个问题,我将非常感激,
对于以下每个递归函数定义,使用主定理来确定其渐增的增长顺序(即Big-Tetha)。如果您认为Master定理不适用于某个案例,请正确解释原因。在这些情况下,你还可以为运行时间提供一个合理的上限(即Big-O)吗?请注意,基本情况都假定为常量。
(a)T(n)= T(n / 2)+ 2 ^ n
(b)T(n)= 4T(n / 2)+(n ^ 1.5) - 1
(c)T(n)= T(n / 3)+ 100
(d)是T(n)= 125T(n / 5)+ n ^ 3 / logn
(e)T(n)= 2T(n / 7)+ log n +√n
我刚刚在网上阅读了一些有关此内容的内容,但我无法获得足够的理解来回答这个问题。任何帮助将不胜感激,我正在努力学习测试,我没有得到任何这个!
非常感谢!
答案 0 :(得分:0)
除(a)之外的所有项目都适用于Masther定理。在情况(a)中,收费函数不是多项式,因此,Master定理不适用。但是可以通过扩展解决它:
T(n) = 2^n + T(n/2)
= 2^n + 2^(n/2) + T(n/4)
= 2^n + 2^(n/2) + 2^(n/4) + T(n/8)
= ...
= O(2^n).
通过将重复作为二进制数的和来解释结果是明确的:1 + 10 + 100 + 10000 + 10000000 <= 2 * 10000000。