通用形式:T(n) = aT(n/b) + f(n)
理解主定理
所以,我必須比較N R個logb(a)用F(N)
如果n^logba
>f(n)
是殼體1和T(n)=Θ(n^logb(a))
如果n^logba
< f(n)
is case 2 and T(n)=Θ((n^logb(a))(logb(a)))
這是正確的嗎?或者我誤解了一些東西?
那麼情況3呢?何時適用?
通用形式:T(n) = aT(n/b) + f(n)
理解主定理
所以,我必須比較N R個logb(a)用F(N)
如果n^logba
>f(n)
是殼體1和T(n)=Θ(n^logb(a))
如果n^logba
< f(n)
is case 2 and T(n)=Θ((n^logb(a))(logb(a)))
這是正確的嗎?或者我誤解了一些東西?
那麼情況3呢?何時適用?
我認爲你誤解了它。 如果n^logba> F(n)是殼體1和T(N)=Θ(N^logb(a))的
在這裏不應該擔心F(N),其結果你正在是T(n)=Θ(n^logb(a))。 (n)是T(n)的一部分,如果得到結果T(n),那麼該值將包含f(n)。 所以,沒有必要考慮那部分。
如果您不清楚,請告訴我。
注:我明白,這是爲時已晚來回答這個問題。我只是把它在這裏爲後人:)
主定理求解復發
復發發生在一個分治解決複雜問題的戰略。
它解決的是什麼?
考慮下面的圖片:
可以說,我們必須要解決規模爲n的問題。在每個步驟中,問題可以分解爲一個子問題,每個子問題的尺寸都較小,尺寸減小了一個因子b。
上面的語句中簡單的話是指大小爲n的問題可分爲相對較小的尺寸N/B的子問題。
另外,上面的圖表顯示,最後當我們多次分解問題時,每個子問題都會很小以至於可以在一段時間內解決。
對於下面推導考慮日誌到基b
讓我們說H是樹的高度,則H = LOGN。 葉數= a^logn。
案例
三種情況1: 現在讓我們假設操作成本由顯著的因素在每個層次,並通過增加當我們達到葉級時,f(n)的值變成多項式小於值n^loga。那麼總體運行時間將主要由最後一級的成本支配。因此T(n)=θ(n^loga)
案例2: 讓我們假設在每個級別的操作成本大致相等。在那種情況下,f(n)大致等於n^loga。因此,總運行時間將是f(n)乘以總層數。 T(n)=θ(n^loga * logn)其中k可以> = 0。凡LOGN是對於k樹> = 0
案例3的高度: 讓我們假設操作的每個級別上的成本是由顯著的因素在每個級別和時間降低我們達到葉級時,f(n)的值變爲多項式大於值n^loga。那麼總體運行時間將主要由第一級的成本支配。因此T(n)=θ(f(n))
如果你有興趣更詳細的閱讀,也許是一些例子來練習。你可以隨時訪問我的博客條目。 Master Method to Solve Recurrences
很好的解釋。雖然找到了一個講解,其中的解釋更詳細但易於理解。這篇文章>> http://www.cs.cornell.edu/courses/cs3110/2012sp/lectures/lec20-master/lec20.html –
爲什麼投票結束並低估了話題?這個主題不是脫離主題...閱讀更好的常見問題...我的問題涵蓋了軟件算法類別... – a1204773
可能爲時已晚......但這裏是http://techieme.in/solving-recurrences -master-method/ – dharam