algorithm - 如何使用递归树求解方程 T(n) = 5T(n/5) + sqrt(n), T(1) = 1, T(0) = 0?

标签 algorithm recursion time-complexity master-theorem

当我应用主定理时,我得到 O(n) 但当我尝试使用递归树解决它时,我卡住了,无法找到任何解决方案。

我试过这个:

T(n) = 5T(n/5) + sqrt(n)
T(n) = 5(5T(n/25) + sqrt(n/5)) + sqrt(n) 
     = 25T(n/25) + sqrt(5n) + sqrt(n)
T(n) = 5(5(5T(n/125) + sqrt(n/25)) + sqrt(n/5)) + sqrt(n) 
     = 125T(n/25) + sqrt(25) + sqrt(5n) + sqrt(n)
.
.
.
T(n) = sqrt(n) + sqrt(5n) + sqrt(25n) +  sqrt(125n) + sqrt(625n) + sqrt(3125n) + ...

我该如何解决这个 GP?

最佳答案

最后的总和有 log_5(n) + O(1) 项,因为递归触底。最大的是 sqrt(5^(log_5(n) + O(1)) n) = sqrt(O(n) n) = O(n)。其他的呈几何级数减少,因此它们在大 O 会计中无关紧要(或者,除以 1 + sqrt(1/5) + sqrt(1/5^2) + ... = Theta(1)) .

关于algorithm - 如何使用递归树求解方程 T(n) = 5T(n/5) + sqrt(n), T(1) = 1, T(0) = 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41860287/

相关文章:

algorithm - 快速排序最坏情况运行时间的递归

python - 确定 Python 的最大有效 setrecursionlimit 值

time-complexity - 时间复杂度 - 理解 big-Theta

string - 具有输入更改容差阈值的哈希

algorithm - 计算数字组合的索引

java - 递归洪水填充 - 检查边界

python - 如何测试 python 中的递归函数不会永远持续下去?

c++ - 包含指数的嵌套循环的时间复杂度是多少?

python - 如何从字典中向 igraph 对象添加边

android - Firefox 中的 'reader mode' 是如何触发的?