繁体   English   中英

使用主定理方法求解递归 T(n) = T(n / 2) - T(n / 6) + O(lg n)?

[英]Solving the recurrence T(n) = T(n / 2) - T(n / 6) + O(lg n) using the master theorem method?

. 使用主定理方法求解递归 T(n) = T(n / 2) - T(n / 6) + O(lg n)?

代入法建议我们猜测解,然后通过归纳证明。

这里我们猜测部分解:T(2^k) = k+1

  • 基本情况:T(2^0) = T(1) = 1。
  • k>0 的归纳情况: T(2^k) = T(2^(k-1)) + 1 = k-1+1 + 1 = k+1

这给了我们 T(n) = lg(n) + 1 对于 na 2 的幂。为了将其扩展到完整的解决方案,让 n' 是大于或等于 n 的 2 的最小幂(对于任意 n>0 )。 然后 T(n) <= T(n') = lg(n') + 1。由于 n' < 2n,我们有 lg(n') < lg(2n) = lg(n) + 1。所以 T( n) < lg(n) + 2。

因此我们证明了 T(n) = O(lg(n))。

它是O(log₂(n))

                    __
T(n)   = T(n/2) + 1   |
T(n/2) = T(n/4) + 1   | 
T(n/4) = T(n/8) + 1   |-- k operations
...                   |
T(1)   =          1 __|

n/2^k = 1  =>  n = 2^k  =>  k = log₂(n)   (by definition of log₂).

硕士定理

使用马斯特定理可以很容易地解决许多标准的递推关系。 它有三种情况。

您的递归关系打破了案例 #2,a 等于 1,b 等于 2,f(n) 等于 1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM