算法的漸進運行時間(時間復雜度)
漸進記號
用來表示算法的漸進運行時間的記號是用定義域為自然數集N={0,1,2,...}的函數來定義的這些記號便於用來表示最壞情況運行時間T(n),因為T(n)一般定義於整數的輸入規模上。有以下5種:
Θ記號 漸進確界
ο記號 漸進上界
Ω記號 漸進下界
º記號 非漸進緊確的上界
ω記號 非漸進緊確的下界
Θ記號
Θ(g(n))={f(n):存在正常數c1,c2,和n0,使得對所有n≥n0,有0≤c1g(n)≤f(n)≤c2g(n)},對任意一個函數f(n),若存在正常數c1,c2,使當n充分大時,f(n)能被夾在c1g(n)和c2g(n)之間,則f(n)屬於集合Θ(g(n))。因為Θ(g(n))是一個集合,可以寫成“f(n)∈Θ(g(n))”,表示f(n)是Θ(g(n))的元素。不過,通常寫成“f(n)=Θ(g(n))”來表示相同的意思。
因為任意一個常數都是0次的多項式,故可以把任何常函數表示成Θ(n0)或Θ(1)。我們經常使用Θ(1)表示一個常數或某變量的常函數。
ο記號
Θ記號漸進地給出一個函數的上界和下界。當只有漸進上界時,使用ο記號。對一個函數g(n),用ο(g(n))表示一個函數集合ο(g(n))={f(n):存在正常數c和n0,使得對所有n≥n0,有0≤f(n)≤cg(n)},讀作g(n)的大ο。ο記號在一個常數因子范圍內給出某函數的一個上界。對於所有n0右邊的n值,f(n)的值都在cg(n)以下。
Ω記號
正如ο記號給出一個函數的漸進上界,Ω記號給出一個函數的漸進下界。Ω(g(n))={f(n):存在正常數c和n0,使得對所有n≥n0,有0≤cg(n)≤f(n)},讀作g(n)的大Ω。
º記號
ω記號
***以上圖片摘自《算法導論》P28***