算法導論 第4章 分治策略(2)

算法導論 第4章 分治策略(2)

代入法求解遞歸式

代入法求解遞歸式的步驟:

  1. 猜測解的形式
  2. 用數學歸納法求出解中的常數,並證明解正確

如對遞歸式:

猜測其解爲T(n)=O(nlgn),代入法要求證明恰當選擇常數c>0,可有T(n)<=cnlgn。假定此上屆對所有m < n成立,代入得到:

其中只要c>=1,最後一步即成立。注意到對n=1,邊界條件T(1)<=c1lg1=0與T(1)=1矛盾,對於這種情況可以修改歸納證明中的基本情況,換爲T(2)或T(3)即可。

遞歸樹方法求解遞歸式

對於代入法,有時想到一個好的猜測比較困難。在遞歸樹方法中,遞歸樹的每個節點表示一個單一子問題的代價,將樹中的代價求和即可得到遞歸調用的總代價,適合用來生成好的猜測,並用代入法驗證。

對於遞歸式:

構造遞歸樹:

整個遞歸樹共有log4n+1層,其中第i層由3<i個節點,每個節點的代價爲c(n/4i)2,所以整棵樹代價之和爲:

計算過程中利用了一定程度的不精確,推導出一個猜測T(n)=O(n2)。接下來即可利用代入法證明猜測正確:

當d>=(16/13)c時推導成立。

主方法求解遞歸式

主方法專門用於求解這種形式的遞歸式:

主定理:令a>=1和b>1是常數,對於定義在非負整數的函數T(n)=aT(n/b)+f(n),T(n)由如下漸近界:

如對於遞歸式:

a=9,b=3,f(n)=n,nlogba=Θ(n2),有f(n)=O(nlog39-ε),ε=1,對應情況1,得到解T(n)=Θ(n2)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章