1 漸進符號
1.1 符號
存在常數與,對所有的,滿足 。的複雜度最多與一個數量級,即小於等於。
例:
宏
出現在公式中的集合符號(如)表示集合中的某一個函數,而不是集合整體。
例1:
直觀理解:表示了一個誤差界限,即主要是由構成的,但也有一些的低階項
實際含義:存在一個函數,使得
例2:
直觀理解:“=”應該理解成“是”,而不是“等於”。等號左邊隱含任意量詞,等號右邊隱含存在量詞,
實際含義:對於任意函數,總存在函數,使得
用途: 如果有很長的“等式鏈”,第一個就等於最後一個(只能從左到右,因爲是非對稱的)
1.2 符號
存在常數與,對所有的,滿足成立。的複雜度最少與一個數量級,即大於等於。
例:
1.3 符號
,表示的複雜度既大於等於的複雜度,又小於等於的複雜度,即於的複雜度相當。
例:,
1.4 和符號
更“嚴格的”和,不等式需要對所有的c成立,而不僅僅是一個特定的c
類比
2 求解遞歸的三種方法
2.1 代換法
第一步:猜答案Guess the form of the solution。代換法在大多數情況下是有效的,但是不幸的是第一步需是猜答案。你不需要完全猜出來,你可以不需要知道常數係數確切是多少,僅需要猜它的形式。
第二步:通過數學歸納法驗證第一步纔出來的form是否滿足條件。
第三步:也是第二步的必然結果,如果猜對了那麼很容易解出常數係數。
下圖所示是如何利用代換法解一個遞歸式:
證明
那麼,上圖中證明了小於等於一個常數乘以。圖中所解出的答案就是上界,不過不是嚴格的上界,事實上我們認爲也成立。所以這並不能證明遞歸式的答案就是,這只是表示至多是。
證明
改進歸納假設
考慮低階項!!
2.2 遞歸樹法
將抽象遞歸表達式具體化的最佳圖形表示就是遞歸樹。該模型以輸入規模爲n開始,一層層地分解,直到輸入規模變爲1爲止。而這個時候的解決方案已經是瑣細的了。圖3-5爲表達式T(n) = T(n /4) + T(n / 2)+ n2 的遞歸樹。
各棵樹的葉子節點數不一樣,因爲遞歸速度不一樣。如果按n的子節點爲兩個n/2,葉子節點數爲n,該例子中n的節點爲n/4和n/2, 葉子節點數肯定小於n。
2.3 主定理法(Master Method)
每個子問題的規模相同,a個相同的子問題。
where , 是不參與遞歸的複雜度函數
判斷與的大小關係(是遞歸樹葉子節點的數量):
- 若對某個常數, 有, 則
- 若, 則
- 若對某個常數, 有,且對某個常數和所有足夠大的有,
分別舉出了主定理方法的三個應用場景的例子以及一個主定理方法不適用的例子。
證明主定理:
樹高度爲
葉子節點數
case 3 : 如果, 代價由上到下呈幾何級數降低,最頂層的代價占主導地位,所以,。
case1: 代價由上到下升高,最底層的代價占主導地位,所以,