在數學分析中,演算法的漸近分析是一種定義執行時效能的數學邊界的方法。 使用漸近分析,可以很容易地得出關於演算法的平均情況,最佳情況和最壞情況的結論。
它用於計算演算法內任何操作的執行時間。
範例:一個操作的執行時間為x(n)
,另一個操作的執行時間計算為f(n2)
。 它指的是執行時將隨著第一次操作n
的增加而線性增加,並且執行時間將以指數方式增加以進行第二次操作。 類似地,如果n
非常小,則兩個操作的執行時間將相同。
通常,演算法所需的時間有三種型別:
用於計算演算法執行時複雜度的常用漸近符號,如下:
它是表達演算法執行時間上限的正式方法,它測量時間複雜度的最壞情況或最長時間,演算法完成其操作所需的時間。 它表示如下:
它是表示演算法執行時間下限的正式方法。 它衡量演算法可能完成的最佳時間量或最佳的案例時間複雜度。
如果要求演算法在不使用上限的情況下花費至少一定的時間,使用大Ω表示法,即希臘字母「omega」。它用於限制輸入大小的執行時間的增長。
如果執行時間是Ω(f(n)),則對於較大的n
值,對於常數(k),執行時間至少為k * f(n)
。 它表示如下:
它是表達演算法執行時間的上限和下限的正式方式。
考慮演算法的執行時間是θ(n)
,如果一次(n)變得足夠大,則對於某些常數k1
和k2
,執行時間最多為k2-n
並且至少為k1≤n
。 它表示如下:
常見的漸近符號
變數 | ?(1) |
---|---|
線性 | ?(n) |
對數 | ?(log n) |
n log n | ?(n log n) |
指數 | 2?(n) |
立方 | ?(n3) |
多項式 | n?(1) |
二次方 | ?(n2) |