我解决了我的作业问题,我使用了递归树。
但是解决方案说这种递归关系可以通过主定理来解决!
T(N)= 49T(N / 25)+ n ^(3/2)log(n)
我解决了n ^(3/2)log ^ 2(n)
但是解决方案说n ^(3/2)log(n)
我不知道为什么这种情况可以使用主人定理并且它是正确的。
答案 0 :(得分:2)
我们可以看到a=49
和b=25
。请注意log_b(a) ~ 1.2
和3/2 = 1.5
。因此,log_b(a) < 3/2
。因此,我们可以看到f(n) = n^{3/2}log(n) = Omega(n^{log_b(a) + epsilon})
对于某些epsilon,因此主定理的情况3适用。因此,运行时间是
T(n) = Theta(f(n)) = n^{3/2}log(n)
注意:您还必须检查
af(n/b) <= cf(n)
表示常量c
。当然
49 (n/25)^{3/2} log(n/25) <= c n^{3/2}log(n)
可以通过将n^{3/2}
两边除以然后从两边减去c log(n)
来检查
(49/25^{3/2} - c) log n - 49/25^{3/2} log(25) <= 0
至少对于c > 49/25^{3/2}
来说这是肯定的(不需要这么做)。