algorithm - 解决递归关系 : T(n) = 3T(n/5) + lgn * lgn

标签 algorithm math big-o recurrence

Consider the following recurrence
T(n) = 3T(n/5) + lgn * lgn

What is the value of T(n)?

(A) Theta(n ^ log_5{3})
(B) Theta(n ^ log_3{5})
(c) Theta(n Log n )
(D) Theta( Log n )

Answer is (A)

我的方法:

lgn * lgn = theta(n) 因为 c2lgn < 2*lglgn < c1*lgn 对于某些 n>n0

上图显示了 c2 = 0.1 和 c1 = 1 的不等式

log_5{3} < 1,

因此,根据主定理,答案必须是 theta(n),并且没有一个答案匹配。如何解决这个问题呢??

最佳答案

您关于 lg n * lg n = Θ(n) 的说法是错误的。请注意,随着 n 趋于无穷大,(lg n)2/n 的极限趋向于 0。您可以使用 l'Hopital 规则看到这一点:

limn → ∞ (lg n)2 / n

= lim n → ∞ 2 lg n / n

= lim n → ∞ 2 / n

= 0

更一般地说,使用类似的推理,您可以证明 lg n = o(nε) 对于任何 ε > 0。

让我们尝试使用主定理来解决这个递归问题。我们看到存在三个大小为 n/5 的子问题,因此我们应该查看 log5 3 的值。因为 (lg n)2 = o(n log5 3), 我们看到递归是底部重的并且可以得出结论递归求解到 O(nlog5 3),这是上面列表中的答案 (A)。

希望这对您有所帮助!

关于algorithm - 解决递归关系 : T(n) = 3T(n/5) + lgn * lgn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24178326/

相关文章:

algorithm - 在具有成本限制和最大奖励的完整图中找到路径

java - Sedgewick Quicksort 没有完全意义

javascript - 两个三 Angular 形相似吗

java - 绘制罗塞塔形状

java - 破解编码面试,第 6 版,2.8

complexity-theory - c^n + n*(logn)^2 + (10*n)^c 的 Big-O 复杂度

python - 使用Python对图像使用最大似然算法进行分割

c++ - 在遍历 vector 时一遍又一遍地比较 vector 内部的一组两个整数

algorithm - 如何计算条件语句和循环的时间复杂度

python - 在二进制网格中扩展 block ( dilation )