時間複雜度
閱讀設定
呢篇文 需要熟悉呢方面嘅人幫手寫。 |
喺運算理論上,時間複雜度(粵拼:si4 gaan3 fuk1 zaap6 dou6)係運算複雜度嘅一種,指行一段演算法要用嘅時間。
複雜度概論
[編輯]睇埋:運算複雜度
喺實際應用上,一段演算法嘅時間複雜度唔會寫做「實際行段演算法需要幾耐時間」,而係會攞大 O 符號嚟表示嘅[1][2]:Ch. 3。要衡量一段演算法嘅時間複雜度,可以將段演算法寫做虛擬碼,然後再檢驗啲碼。設一條陣列 arr
,條陣列係段演算法嘅 input,長度係 n
[3]:
statement1;
statement2;
statement3;
好似以上嘅「就噉行幾行陳述式」嘅碼,無論 n
係幾多都一樣係行一次,所以複雜度係 ,而好似以下噉嘅碼(睇埋 foreach 嘅概念):
同 arr 入面每嚿嘢,做
statement4;
上面嘅碼會將 statement4
行 n
咁多次,所以複雜度係 ... 如此類推[3]。
多項式時間
[編輯]多項式時間(polynomial time):如果話一段演算法係多項式時間,即係話段演算法「要行幾耐」嘅上限係 ,當中 係某個正嘅常數[4]。
睇埋
[編輯]引咗
[編輯]- ↑ Sipser, Michael (2006). Introduction to the Theory of Computation. Course Technology Inc.
- ↑ Kuo, W., & Zuo, M. J. (2003). Optimal reliability modeling: principles and applications. John Wiley & Sons.
- ↑ 3.0 3.1 How to find time complexity of an algorithm?. Adrian Mejia.
- ↑ Sipser, Michael (2006). Introduction to the Theory of Computation. Course Technology Inc.