複雜度函式的表示

2022-06-23 16:09:12 字數 1019 閱讀 7266

各種複雜度函式的表示方法大致可按表達的精確程度分為下面的三個等級: (何種情況下用相應的複雜度函式)

1.解析表示式。 用解析表示式刻畫複雜度函式是最精確的表達方式。例如 ·求n元中之最大元演算法maxelement的複雜度為 t(n) = w(n) = a(n) = n – 1 。 ·順序搜尋演算法的最壞情形時間複雜度為 w(n) = n ; 在指定分佈條件及 q = 1情形下的期望時間複雜度為 a(n) = ( n + 1)/2 。

2.階(order)表示式。 為了簡化演算法複雜度分析的方法,往往只需計算當問題規模較大時演算法的漸進複雜度的階。

定義1.1 稱(複雜度)函式t(n)是o(f(n))的,即 t(n) = o(f(n)),如果存在常數c > 0與n0 ,當n > n0 時有t(n)≤cf(n) 。例如: t1(n) = (n + 1) / 2 = o(n) , t2(n) = 3n2 + 4n + 5 = o(n2)

定義1.2 稱(複雜度)函式t(n)是ω(f(n))的,即 t(n) = ω(f(n)),如果存在常數c > 0與n0 ,當n > n0 時有t(n) ≥cf(n) 。 例如: t1(n) = (n + 1) / 2 = ω(n) , t2(n) = 3n2 + 4n + 5 = ω(n2)

定義1.3 稱(複雜度)函式t(n)是θ(f(n))的, 即t(n) = θ(f(n)),如果存在常數c1, c2 > 0與n0 ,當n > n0 時有c1f(n)≥t(n)≥c2f(n) 。 例如: t1(n) = (n + 1) / 2 = θ(n) , t2(n) = 3n2 + 4n + 5 = θ(n2) 顯然,如果t(n) = o(f(n))且t(n) = ω(f(n)), 則t(n) = θ(f(n)) 。

3.多項式函式和指數函式。 多項式函式指t(n)為自變數n的多項式函式,例如t1(n)=n/2+1/2,t2(n)=3n2+4n+5等。 而指數函式如t3(n) = 2n + 5,t4(n) = 3n/2 – 8等等,自變數n出現在指數部分。這兩類函式都是單增函式,但指數函式的增長速度要比多項式函式快得多。三種複雜度指標由細至粗, 對於一個新問題首先可用最後一種(是否為多項式)