演算法分析(期末複習版)

2022-10-04 03:33:10 字數 1030 閱讀 7274

如果存在兩個正常數c和n0,對於所有的n≥n0,有|f(n)|≤c|g(n)|,則記作

f(n)=o(g(n))。

o(f(n))+o(g(n)) = o(max(f(n), g(n)) ;

o(f(n))+o(g(n)) = o(f(n)+g(n)) ;

o(f(n)) o(g(n)) = o(f(n) g(n)) ;

如果g(n) = o(f(n)) ,則o(f(n))+o(g(n)) = o(f(n)) ;

o(cf(n)) = o(f(n)) ,其中c是乙個正的常數;

f(n) = o(f(n))。

如果存在兩個正常數c和n0,對於所有的n≥n0,有|f(n)| ≥ c|g(n)|,則記作:f(n)=ω(g(n))。

ω(f(n))+ ω(g(n)) = ω(min(f(n), g(n)) ;

ω(f(n))+ (g(n)) = ω(f(n)+g(n)) ;

ω(f(n)) ω(g(n)) = ω(f(n)g(n)) ;

如果g(n) = ω(f(n)) ,則ω(f(n))+ ω(g(n)) = ω(f(n)) ;

ω(cf(n)) = ω(f(n)) ,其中c是乙個正的常數;

f(n) = ω(f(n))。

如果存在正常數c1,c2和n0,對於所有的n≥n0,有 c1|g(n)|≤ |f(n)|≤ c2|g(n)|,則記作:f(n)= θ(g(n))。

不同時間複雜性函式的對比

1.p(n)=max(看題裡是要求什麼)

2.按定義設兩個函式f(n)=o(f(n))和g(n)=o(g(n))

3.f(n)+g(n)分別通過定義展開得到與(c1+c2) ∗ * ∗p(n)的關係

4.c3=c1+c2,n3=max(這個也是根據題來的),得到f(n)+g(n)與c3 ∗ * ∗p(n)

演算法期末複習(二)

回溯法是一種試探的方法,從一條路走,能進則進,不能則退。例如 在數字1 2 3 9 順序不變 之間插入 或什麼都不插入,使得結果為100。include using namespace std define n 8 8個符號 int a int num 0 計算滿足條件的式子的個數 char op ...

演算法課程期末複習總結

八大排序演算法複雜度比較 求解遞迴式的複雜度 max sum 最大子段和 int len arr.length int dp newint len 1 dp 0 0 for int i 1 i len i int res integer.min value for int i 1 i dp.leng...

資料結構期末複習排序演算法實現(C 版)

0x02.選擇排序 0x03.插入排序 0x04.希爾排序 0x05.快速排序 0x06.歸併排序 0x07.堆排序 void bubblesort int arr,int len void bubblesort pro int arr,int len if issort void selectso...