1.級數
a. 算數級數(等差)
1+2+3+4+...+n = o(n^2) //末項的平方
b. 冪數級數
1^a + 2^a + ... + n^a = o(n^(a+1)) //末項的冪數加一次方
c. 幾何級數
a^0 + a^1 + a^2 + ... + a^n=o(a^n)//末項
d. 調和級數
1/1 + 1/2 + 1/3 + ... + 1/n = o(logn)
log1 + log2 + log3 + ... + logn = o(nlogn)
2.正確性證明
a. 不變性證明:第k輪後,一定會...;此時考慮第k+1輪...(數學歸納法)
b. 單調性證明:第k輪後,問題規模會變成n-k,演算法必然會終止
因此,一定會有邊界。
3. 遞迴
減而治之
分而治之
以上兩種可同時用,例如lcs中末尾字元相同,則減而治之;不相同,則分成兩種情況(分而治之)。
4. 封底估算
主流計算機頻率: 10^9/s
fie = 1.618
fie^36 = 2^25
2^10 = 10^3
10^5 s = 1 day
10^10 = 3 centuries
5.關於遞迴的複雜度
無論是減而治之還是分而治之,複雜度取決於分成的遞迴程序個數。
一般來說,減而治之,複雜度不變;分而治之,複雜度指數級。
演算法分析基礎
定義 如果存在正常數c與n0,使得當n n0時t n cf n 則記為 t n o f n 如果存在正常數c與n0,使得當n n0時t n cg n 則記為 t n omega g n 當且僅當t n o h n 且t n h n 時,則 t n theta h n 如果t n o p n 且t n...
演算法分析基礎
定義 如果存在正常數c與n0,使得當n n0時t n cf n 則記為 t n o f n 如果存在正常數c與n0,使得當n n0時t n cg n 則記為 t n omega g n 當且僅當t n o h n 且t n h n 時,則 t n theta h n 如果t n o p n 且t n...
演算法和演算法分析基礎
演算法 對求解步驟的描述,是一組指令的有序序列,演算法必須是有窮的,可行的,並且要有輸入輸出 通常我們對演算法設計的要求有 正確性 應該滿足具體問題的需求。健壯性 經得起測試 效率與低儲存量 演算法執行的時間要越短越好,占用的儲存空間應該越少越好 演算法效率的度量 一般分為事後統計和事前分析估算 因...