我在测试中具有以下复发关系,但我弄错了,我不确定为什么。
1. T(n) = 2T(n/4) + O(n^0.5)
使用MT:a = 2,b = 4,f(n)= n ^ 0.5
比较n ^(log_4(2))与n ^ 0.5 => n ^ 0.5 == n ^ 0.5
因此,情况3:Θ(n log n)
显然那是错的,不知道为什么。
2. T(n) = 3T(n/4) + O(n^0.75)
使用MT:a = 3,b = 4,f(n)= n ^ 0.75
比较n ^(log_4(3))与n ^ 0.75
因此,情况1:Θ(n ^ log_4(3))
3. T(n) = T(n/2) + T(n/3) + O(n log n)
这不是MT可以解决的形式,如果没有帮助,我无法轻易找到p值。因此,我在黑暗中刺了一下,这是错误的。不知道从哪里开始。
4. T(n) = 2T(n/2) + n log n
使用MT:a = 2,b = 2,f(n)= n log n
比较n ^ log_2(2)与n log n => n ^ 1与n log n
情况2:Θ(n log n)
答案 0 :(得分:1)
您可能误读或忽略了Master定理的某些细节。将引用Wikipedia article。
1)
第二种情况指出:
由于c_crit = 0.5
和k = 0
,最终的复杂度是:
您只是错过了前面n
上的指数。
2)
这是正确的。
4)
您在这里错过了另一个详细信息:k = 1
,并且需要附加一个因素log n
:
3)
这有点棘手。使用Akra-Bazzi method:
要求解指数p
,只需在计算器上使用Newton-Raphson-给出p = 0.787885...
。按部分执行集成:
替换为: