我试图通过绘制一个reccurence树解决T(n) = sqrt(n)*T(sqrt(n))+sqrt(n)
并解决它是替换方法。但是我很难理解sqrt方法将如何影响这个过程,如果可能的话我正在寻找一些指针
非常感谢!
答案 0 :(得分:1)
您可以将T(n) = sqrt(n)⋅T(sqrt(n)) + sqrt(n)
写为
T(n) = n1/2 + n3/4 + n7/8 + ...
我们知道Σi=1,...,∞ 2-i = 1
,所以你可以说
T(n) = n1/2 + n3/4 + n7/8 + ... < n + n + n + ...
现在你只需要通过求解n2-x < 2
计算总和的长度,就可以获得类似x ≈ log log n
的内容。
所以解决方案是T(n) = O(n ⋅ log log n)
。
抱歉,您正在寻找使用substitun方法的解决方案。我从来没有这样做,所以我在this site上阅读了一篇描述。
让T(sqrt(n)) = k ⋅ sqrt(n) ⋅ log log sqrt(n) + O(sqrt(n))
为常量k
。
T(n) = sqrt(n) ⋅ k ⋅ sqrt(n) ⋅ log log sqrt(n) + sqrt(n) + O(sqrt(n))
= k ⋅ n ⋅ log (0.5 log n) + sqrt(n) + O(sqrt(n))
= k ⋅ n ⋅ log log n + log 0.5 + sqrt(n) + O(sqrt(n))
= k ⋅ n ⋅ log log n + O(sqrt(n))
= O(n log log n)
我希望这会有所帮助。