常用算法的時間復雜度分析


按數量級遞增排列,常見的時間復雜度有:
常數階O(1),對數階O(log2n),線性階O(n),
線性對數階O(nlog2n),平方階O(n^2),立方階O(n^3),...,

k次方階O(n^k),指數階O(2^n)。隨着問題規模n的不斷增大,上述時間復雜度不斷增大,算法的執行效率越低。

時間復雜度:基本操作重復執行的次數的階數 T(n)=o(f(n))
以下六種計算算法時間的多項式是最常用的。其關系為:
 O(1)<O(logn)<O(n)<O(nlogn) <O(n2)<O(n3)
指數時間的關系為:
   O(2n)<O(n!)<O(nn)
   當n取得很大時,指數時間算法和多項式時間算法在所需時間上非常懸殊。

以下是一些常見時間復雜度的例子。

名稱     復雜度類     運行時間(T(n))     運行時間舉例     算法舉例
常數時間     
    O(1)     10     判斷一個二進制數的奇偶
反阿克曼時間     
    O(\alpha(n))     
    並查集的單個操作的平攤時間
迭代對數時間     
    O(\log^{*}n)     
    en:Cole-Vishkin algorithm
對數對數時間     
    O(\log \log n)     
    有界優先隊列的單個操作[1]
對數時間     DLOGTIME     O(\log n)     \log n,\log n^2     二分搜索
冪對數時間     
    (\log n)^{O(1)}     (\log n)^2     
(小於1次)冪時間     
    O(n^c),其中0 < c < 1     n^{\frac{1}{2}},n^{\frac{2}{3}}     K-d樹的搜索操作
線性時間     
    O(n)     n     無序數組的搜索
線性迭代對數時間     
    O(n\log^{*}n)     
    Raimund Seidel的三角分割多邊形算法
線性對數時間     
    O(n\log n)     n\log n,\log n!     最快的比較排序
二次時間     
    O(n^2)     n^2     冒泡排序、插入排序
三次時間     
    O(n^3)     n^3     矩陣乘法的基本實現,計算部分相關性
多項式時間     P     2^{O(\log n)} = n^{O(1)}     n,n \log n,n^{10}     線性規划中的en:Karmarkar's algorithm,AKS質數測試
准多項式時間     QP     2^{(\log n)^{O(1)}}     
    關於有向斯坦納樹問題最著名的O(\log^2 n)近似算法
次指數時間(第一定義)     SUBEXP     O(2^{n^{\epsilon}}),對任意的ε > 0     O(2^{(\log n)^{\log \log n}})     Assuming complexity theoretic conjectures, BPP is contained in SUBEXP.[2]
次指數時間(第二定義)     
    2o(n)     2n1/3     Best-known algorithm for integer factorization and graph isomorphism
指數時間     E     2O(n)     1.1n, 10n     使用動態規划解決旅行推銷員問題
階乘時間     
    O(n!)     n!     通過暴力搜索解決旅行推銷員問題
指數時間     EXPTIME     2poly(n)     2n, 2n2     
雙重指數時間     2-EXPTIME     22poly(n)     22n     Deciding the truth of a given statement in Presburger arithmetic



常用時間復雜度如圖:



 
---------------------  
作者:聽見下雨的聲音hb  
來源:CSDN  
原文:https://blog.csdn.net/u010010664/article/details/78834695  
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

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



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