函數的漸近的界&階的比較


一、函數的漸近的界

  我們在研究算法性能的時候,往往會在意算法的運行時間,而運行時間又與算法輸入的規模相關,對於一個算法,我們可以求出運行時間和輸入規模的函數,當輸入規模足夠大時,站在極限的角度看,就可以求出運行時間如何隨着輸入規模的無限增長而增長。
  這種令輸入規模無限大 而研究運行時間增長情況的做法,就是在研究算法的漸近效率。

幾種符號的直觀理解:
 
Θ,O,Ω的圖像表示

Θ(漸近緊確界):若 f ( n ) = Θ ( g ( n )),則存在 c1>0 ,c2 >0,s.t. n→∞時, f ( n )夾在 c1 g ( n )和 c2 g ( n )之間。即g(n)既是f(n)的漸近上界又是漸近下界,可假裝理解為”f(n) = g(n)“
且當 f ( n ) = Θ ( g ( n ))時,有:

 
 

 

O (漸近上界):若f ( n ) = O ( g ( n )),則存在c>0, s.t. n→∞時,f(n)在cg(n)下面。即g(n)是f(n)的漸近上界,可假裝理解為“f(n) <= g(n)”
o (非漸近緊確上界):與O的區別是,任意c>0, 都使f(n)在cg(n)下面。是非緊的上界,可假裝理解為“f(n) < g(n)”
且當f ( n ) = o ( g ( n ))時,有:

 
 

 

Ω (漸近上界):若f ( n ) = Ω ( g ( n )),則存在c>0, s.t. n→∞時,f(n)在cg(n)上面。即g(n)是f(n)的漸近下界,可假裝理解為“f(n) >= g(n)”
ω (非漸近緊確下界):與Ω的區別是,任意c>0, 都使f(n)在cg(n)上面。是非緊的下界,可假裝理解為“f(n) > g(n)”
且當f ( n ) = ω ( g ( n ))時,有:

 
 

 

二、幾個重要結論(階的比較)

基本函數類:

至少指數級:2^n,3^n,n!,...
多項式級:n,n^2,nlogn,n^{1\over2},...
對數多項式級:logn,log^2n,loglogn,...
多項式函數<指數函數: n^d = o(r^n),r>1,d>0
對數函數<冪函數: ln n = o(n^d),d>0

對數函數:

(1)log_2n=Θ(log_tn)(換底)
(2)log_bn=o(n^α) (α>0)
(3)a^{log_bn}=n^{lob_ba}(即,形如指數函數的冪是log級,則可化成多項式級)

指數函數與階乘:

Stirling公式: n!=\sqrt{2πn}({n\over e})^n(1+Θ({1\over n}))
n!=o(n^n)
n!=ω(2^n)
log(n!)=Θ(nlogn)



作者:楠子小先生
鏈接:https://www.jianshu.com/p/b9e4126e5bce
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM