跳去內容

時間複雜度

出自維基百科,自由嘅百科全書

運算理論上,時間複雜度粵拼si4 gaan3 fuk1 zaap6 dou6)係運算複雜度嘅一種,指行一段演算法要用嘅時間

複雜度概論

[編輯]

喺實際應用上,一段演算法嘅時間複雜度唔會寫做「實際行段演算法需要幾耐時間」,而係會攞大 O 符號嚟表示嘅[1][2]:Ch. 3。要衡量一段演算法嘅時間複雜度,可以將段演算法寫做虛擬碼,然後再檢驗啲碼。設一條陣列 arr,條陣列係段演算法嘅 input,長度係 n [3]

  statement1;
  statement2;
  statement3;

好似以上嘅「就噉行幾行陳述式」嘅碼,無論 n 係幾多都一樣係行一次,所以複雜度係 ,而好似以下噉嘅碼(睇埋 foreach 嘅概念):

   arr 入面每嚿嘢,做
    statement4;

上面嘅碼會將 statement4n 咁多次,所以複雜度係 ... 如此類推[3]

多項式時間

[編輯]

多項式時間(polynomial time):如果話一段演算法係多項式時間,即係話段演算法「要行幾耐」嘅上限,當中 係某個正嘅常數[4]

睇埋

[編輯]

引咗

[編輯]
  1. Sipser, Michael (2006). Introduction to the Theory of Computation. Course Technology Inc.
  2. Kuo, W., & Zuo, M. J. (2003). Optimal reliability modeling: principles and applications. John Wiley & Sons.
  3. 3.0 3.1 How to find time complexity of an algorithm?. Adrian Mejia.
  4. Sipser, Michael (2006). Introduction to the Theory of Computation. Course Technology Inc.