《演算法導論》筆記 第3章 函式的增長

2021-09-11 08:01:40 字數 1719 閱讀 9824

第3章 函式的增長

漸進記號 (θοοωω)

θ記號對任乙個函式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))的元素。θ(g(n))的定義需要每個成員f(n)∈θ(g(n))都是漸近非負的,即當n足夠大時,f(n)是非負值。

即0≤c1g(n)≤f(n)≤c2g(n),f(n)>0。這就要求函式g(n)也是漸近非負的,因此,θ記號中用到的每個函式都是漸近非負的。

為了說明θ記號其效果相當於捨棄了低階項和忽略了最高端項的係數,證明一下

1/2n^2 - 3n = θ( n ^2 )。

對於所有的n ≥ n0,有c1n ^2 ≤ 1/2n ^2 - 3n ≤ c2n ^2成立,除於n ^2不等式得:

c1 ≤ 1/2 - 3/n ≤ c2。取c1=1/14, c2=1/2, n0=7即可滿足,也可以選擇其它符合條件的常數。

ο記號θ記號漸近地給出乙個函式的上界和下界。當只有漸近上界時,使用ο記號。對乙個函式g(n),用ο(g(n))表示乙個函式集合。存在正常數c和n0,使所有的n≥n0,0≤f(n)≤cg(n)。

注意: θ記號強於ο記號,θ集合包含於ο集合。令人驚訝的是,f(n)=an+b也在ο(n ^2)中,

設c=a + |b|,n0=1,對任意的n≥n0即n≥1,有0 ≤ f(n) ≤ cg(n),即0 ≤ a*n+b ≤ (a+ |b|)*n ^2成立。其實也不奇怪,這個一次函式以二次函式作為上界,但這個上界不是漸近緊確的。

ω記號ω記號給出函式的漸近下界,對乙個函式g(n),用ω(g(n))表示乙個函式集合。存在正常數c和n0,使所有的n≥n0,有0 ≤ cg(n) ≤ f(n)。

定理:對任意兩個函式f(n)和g(n),f(n)=θ(g(n))當且僅當f(n)=ο(g(n))和f(n)=ω(g(n))。

注意:ω描述的是漸近下界,ο描述的是漸近上界, θ描述的是漸近確界(包括上界和下界)。插入排序的執行時間介於ω(n)和ο(n ^2)之間,但不可以說插入排序的執行時間是ω(n ^2),因為這裡的執行時間指的是對於每乙個n值,所有的輸入規模。但我們可以說插入排序的最壞情況執行時間為ω(n ^2),因為確實存在乙個輸入使演算法的時間為ω(n ^2)。

ο記號ο記號所提供的漸進上界可能是也可能不是漸近緊確的。界2n ^2 =ο(n ^2)是漸進緊確,而2n=ο(n ^2)卻不是漸近緊確。我們用ο記號來表示非漸近緊確的上界。對任意正常數c,存在常數n0>0,使對所有的n≥n0,有0≤f(n)≤cg(n)。與ο記號不同的是,ο記號是存在正常數c,而ο記號是對任意正常數c都成立。當n趨於無窮時,lim f(n)/g(n) = 0,f(n)對於非漸近緊確上界g(n)來說就不重要了,增長速度是不及g(n)的。

ω記號ω記號與ω記號的關係好像ο記號與ο記號的關係一樣。我們用ω記號來表示非漸近緊確的下界。

f(n)∈ω(g(n))當且僅當g(n)∈ο(f(n)),f(n)以g(n)為下界,當然g(n)就以f(n)為上界了。對任意正常數c,存在常數n0>0,使對所有的n≥n0,有0≤cg(n)≤f(n)。當n趨於無窮時,f(n)對於非漸近緊確下界g(n)來說就變得任意大了。即lim f(n)/g(n) = ∞。

標準記號和常用函式:

由於其它知識點都有涉及,這裡只給出對於比較陌生的多重對數函式的演算法:

演算法導論 函式的增長。

因為在計算機程式設計的學習中,我們需要掌握乙個類似於 需求量 的東西,怎麼去理解需求量呢,舉個最簡單的例子,你有乙個雙層迴圈,這個雙層迴圈所需要的時間,就是乙個增長量。具體一點可以這麼去解釋這個問題,如果你在乙個迴圈裡面的每乙個步驟所需要的時間都不同的話,那麼 你的需求量就是乙個分布式的增長。我們需...

《演算法導論》筆記 第2章

本章出現了全書第乙個演算法 插入排序。插入排序並不是最直觀的排序演算法,拿它做第乙個講解應該有其他的理由。通過插入排序的講解,偽 約定 迴圈不變式 演算法分析等最基礎的知識被帶了出來。此後又講了第二個演算法 合併排序,並引出了演算法設計中的兩種常見型別 增量法 incremental 和分治法 di...

《演算法導論 第3版》第1章 筆記 習題答案

若對每個輸入例項,演算法都以正確的輸出停機,則稱該演算法是正確的,並稱正確的演算法解決了給定的計算問題。不正確的演算法對某些輸入例項可能根本不停機。問題描述 判斷乙個程式是否會在有限時間內結束執行。這個答案是否定的,這裡涉及邏輯數學中可計算性理論。離散數學及其應用 第8版 第13章 計算模型 電腦程...