可以应用主定理吗?
或者对于T (n) = 2T (n/16) + n log n
说,主定理在这里是如何应用的?
我得到a = 2
,b = 16
,我不确定c
和k
。
答案 0 :(得分:1)
要解决这种递归关系T(n) = a⋅T(n/b) + f(n)
,您必须计算e = logb(a)
。
然后(对于ε > 0
):
f(n) ∈ O(ne - ε)
⇒T(n) ∈ Θ(ne)
f(n) ∈ Θ(ne)
⇒T(n) ∈ Θ(ne⋅log(n))
f(n) ∈ Ω(ne + ε)
⇒T(n) ∈ Θ(f(n))
有关详细信息,请参阅Masters Theorem。
因此,在您的情况下:a = 2
,b = 16
⇒e = log16(2) = 0.25
适用于案例3,
因此T(n)
位于Θ(n log n)
。
答案 1 :(得分:0)
即使log(n)项不存在,每个级别的每个子问题的工作减少也占主导地位(b> a)。因此,在我看来,复杂性应由最高级别的工作决定,即O(nlogn)。