演算法分析基礎

2021-08-08 14:29:57 字數 758 閱讀 6662

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...

演算法和演算法分析基礎

演算法 對求解步驟的描述,是一組指令的有序序列,演算法必須是有窮的,可行的,並且要有輸入輸出 通常我們對演算法設計的要求有 正確性 應該滿足具體問題的需求。健壯性 經得起測試 效率與低儲存量 演算法執行的時間要越短越好,占用的儲存空間應該越少越好 演算法效率的度量 一般分為事後統計和事前分析估算 因...