题
考虑这个例子:
T(n) = T(7n/8) + 2n
我假定T(1)=0
和试图解决它在以下方式
T(n) = T(7n/8) + 2n
= T(49n/64) + 2.(7n/8) + 2n
= T(343n/512) + 2.(7n/8).(7n/8)+ 2.(7n/8) + 2n
= T(1) + 2n ( (7n/8)^i + ..... + 1)
但我不能出任何结论。我很困惑什么我应该做下一个步骤。
解决方案
您的做法是声音,但你会看到,如果你重写它略有不同的事:
T(n) = T((7/8)^1 * n) + 2 * (7/8)^0 * n
= T((7/8)^2 * n) + 2 * (7/8)^1 * n + 2 * (7/8)^0 * n
= T((7/8)^3 * n) + 2 * (7/8)^2 * n + 2 * (7/8)^1 * n + 2 * (7/8)^0 * n
.
.
.
= T((7/8)^k * n) + 2 * n * sum j = 0 to k-1 (7/8)^j
现在,让k
趋于无穷大,看看会发生什么。如果你熟悉几何级数。
不隶属于 StackOverflow