1. 程式人生 > >算法時間復雜度

算法時間復雜度

算法 gpo log 二次 相對 nlogn div 多項式 時間

算法時間復雜度用相對增長率是度量

表示方法:

T(N)=O(f(N)) 那麽T(N)<=f(N)的增長率

T(N)=?(g(N))那麽T(N)>=g(N)的增長率

T(N)=o(p(N)) 那麽T(N)<p(N)的增長率

T(N)=θ(h(N)) 那麽T(N)=h(N)的增長率

通常采用大O記法

計算法則

法則1:如果T1(N)=O(f(N))且T2(N)=O(g(N))

a.T1(N)+T2(N)=O(f(N)+g(N)) 最終取值max(O(f(N)),O(g(N)) )

b.T1(N)T2(N)=O(f(N)g(N))

法則2:如果T(N)是一個k次多項式,則T(N)=θ(Nk)(k次方)

法則3:對於任意常數k,lognkn=O(N)。說明對數增長率相當緩慢

增長率函數的常見分類

c常數、logN對數、log2N對數的平方、N線性、NlogN、N2二次方、N3三次方、2N指數

洛必達法則

limN->∞f(N)/g(N)

極限值是0,那麽T(N)=o(g(N))

極限值c/=0,那麽T(N)=θ(g(N))

極限值是∞,那麽g(N)=o(f(N))

算法時間復雜度