簡體   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