当f(n)为负时,主定理如何应用?

时间:2016-09-26 03:19:12

标签: recursion divide-and-conquer master-theorem

尝试解决此递归问题:

T(n) = 4T(n/2) + 2500 - sqrt(n)
here a = 4, b=2 but my f(n) = 2500 -sqrt(n) 
n^ logb(a) = n ^ log2 (4) = n ^2 

但f(n)是常数-sqrt(n)

我的问题:

  1. 我可以假设f(n)= Theta(sqrt n)或者我应该知道一些技巧吗?

  2. 此外,当你在这里时,如果你可以解释是否有一个常数减去sqrt(n),即减号是否有任何意义?或者可以忽略。

  3. 这让我抓狂!请帮忙!谢谢!

1 个答案:

答案 0 :(得分:5)

Master Theorem有几个先决条件和案例要求。违反其中任何一个,该定理或案例不适用。我可以看到,这种情况违反了f(n)为正的定理要求。

实际上,这表示一旦传递2500 ^ 2个节点,进程间通信开销就是负数:在计算完成之前收集并整理结果。

我强烈怀疑问题陈述中有错误。