• Java 資料結構教程

Java 資料結構 - 漸進符號



演算法的漸進分析是指定義其執行時效能的數學邊界/框架。使用漸進分析,我們可以很好地得出演算法的最佳情況、平均情況和最壞情況。

漸進分析是輸入約束的,即如果演算法沒有輸入,則認為它在恆定時間內工作。除了“輸入”之外,所有其他因素都被認為是恆定的。

漸進分析是指用計算的數學單位計算任何操作的執行時間。例如,一個操作的執行時間計算為 f(n),另一個操作的執行時間計算為 g(n2)。這意味著第一個操作的執行時間將隨著 n 的增加而線性增加,而第二個操作的執行時間將隨著 n 的增加而呈指數增加。同樣,如果 n 非常小,則兩個操作的執行時間幾乎相同。

通常,演算法所需的時間分為三種類型:

  • 最佳情況 - 程式執行所需的最小時間。

  • 平均情況 - 程式執行所需的平均時間。

  • 最壞情況 - 程式執行所需的最多時間。

漸進符號

以下是常用的漸進符號,用於計算演算法的執行時間複雜度。

  • Ο 符號

  • Ω 符號

  • θ 符號

大O符號,Ο

符號 Ο(n) 是表示演算法執行時間上界的正式方法。它衡量最壞情況時間複雜度或演算法完成所需的最長時間。

Big Oh Notation

例如,對於函式 f(n)

Ο(f(n)) = { g(n) : 存在 c > 0 和 n0 使得對於所有 n > n0,f(n) ≤ c.g(n)。}

歐米茄符號,Ω

符號 Ω(n) 是表示演算法執行時間下界的正式方法。它衡量最佳情況時間複雜度或演算法完成所需的最短時間。

Omega Notation

例如,對於函式 f(n)

Ω(f(n)) ≥ { g(n) : 存在 c > 0 和 n0 使得對於所有 n > n0,g(n) ≤ c.f(n)。}

西塔符號,θ

符號 θ(n) 是表示演算法執行時間上下界的正式方法。它表示如下:

Theta Notation

θ(f(n)) = { g(n) 當且僅當 g(n) = Ο(f(n)) 且 g(n) = Ω(f(n)) 對於所有 n > n0。}

常見的漸進符號

以下是一些常見的漸進符號列表:

常數 Ο(1)
對數 Ο(log n)
線性 Ο(n)
n log n Ο(n log n)
二次 Ο(n2)
三次 Ο(n3)
多項式 nΟ(1)
指數 2Ο(n)
廣告

© . All rights reserved.