第一部分--基礎(chǔ)知識(shí)--第3章:函數(shù)的增長(zhǎng)--漸近記號(hào)、算法中常見函數(shù)介紹

說明:該系列博客整理自《算法導(dǎo)論(原書第二版)》,但更偏重于實(shí)用,所以晦澀偏理論的內(nèi)容未整理,請(qǐng)見諒。另外本人能力有限,如有問題,懇請(qǐng)指正!

1、漸近符號(hào)

????當(dāng)輸入規(guī)模大到使運(yùn)行時(shí)間只和增長(zhǎng)的量級(jí)有關(guān)時(shí),就是在研究算法的?漸近?效率。就是說,從極限角度看,我們只關(guān)心算法運(yùn)行時(shí)間如何隨著輸入規(guī)模的無限增長(zhǎng)而增長(zhǎng)。通常,對(duì)不是很小的輸入規(guī)模而言,從漸近意義上說更有效的算法是最佳的選擇。

表示算法的漸近運(yùn)行時(shí)間的記號(hào)是用定義域?yàn)樽匀粩?shù)集?N?= {0, 1, 2, …} 的函數(shù)來定義的。這些記號(hào)便于用來表示最壞情況運(yùn)行時(shí)間?T?(?n?)。這些記號(hào)的定義域可以很容易地?cái)U(kuò)充至實(shí)數(shù)域或縮小到自然數(shù)的某個(gè)受限子集上,但要注意搞清楚這些表示法的準(zhǔn)確含義,方能做到越規(guī)使用而不誤用。

? ? 1.1、Θ?記號(hào):表示漸近值,即真實(shí)值在漸近值的基礎(chǔ)上波動(dòng)

????????對(duì)一個(gè)給定的函數(shù)?g?(?n?),用?Θ?(?g?(?n?))來表示函數(shù)集合:

????????對(duì)任何一個(gè)函數(shù)?f?(?n?),若存在正常數(shù)?c1?,?c2?,使當(dāng)?n?充分大時(shí),?f?(?n?)能被夾在?c1?g?(?n?)和?c2?g?(?n?)之間,則?f?(?n?)屬于集合?Θ?(?g?(?n?))??梢詫懗伞?f?(?n?) ∈?Θ?(?g?(?n?))”表示?f?(?n?)是?Θ?(?g?(?n?))的元素。不過,通常寫成“?f?(?n?) =?Θ?(?g?(?n?))”來表示相同的意思。

????????上圖給出了函數(shù)?f?(?n?)和?g?(?n?)的直觀圖示,其中?f?(?n?) =?Θ?(?g?(?n?))。對(duì)所有位于?n0?右邊的?n?值,?f?(?n?)的值落在?c1?g?(?n?)和?c2?g?(?n?)之間。換句話說,對(duì)所有的?n?>=?n0?,?f?(?n?)在一個(gè)常數(shù)因子范圍內(nèi)與?g?(?n?)相等。我們說?g?(?n?)是?f?(?n?)的一個(gè)?漸近確界?。

? ??????Θ?(?g?(?n?))的定義要求每個(gè)成員?f?(?n?) ∈?Θ?(?g?(?n?))都是?漸近非負(fù)?,就是說當(dāng)?n?足夠大時(shí)?f?(?n?)是非負(fù)值。這就要求函數(shù)?g?(?n?)本身也是漸近非負(fù)的,否則集合?Θ?(?g?(?n?))就是空集。

? ??????Θ?記號(hào)表示漸近值,效果相當(dāng)于舍棄了低階項(xiàng)和忽略了最高階項(xiàng)的系數(shù),即真實(shí)值在漸近值的基礎(chǔ)上波動(dòng)。

? ? 1.2、O?符號(hào):表示上界

? ??????Θ?記號(hào)表示漸近值。當(dāng)只有?漸近?上界時(shí),使用?O?記號(hào)。對(duì)一個(gè)函數(shù)?g?(?n?),用?O?(?g?(?n?))表示一個(gè)函數(shù)集合:

????????上圖說明了?O?記號(hào)的直觀意義。對(duì)所有位于?n0?右邊的?n?值,函數(shù)?f?(?n?)的值在?g?(?n?)下。

? ? 1.3、Ω?記號(hào):表示下界

? ??????Ω?記號(hào)給出了函數(shù)的漸近下界。給定一個(gè)函數(shù)?g?(?n?),用?Ω?(?g?(?n?))表示一個(gè)函數(shù)集合:


????????上圖說明了?Ω?記號(hào)的直觀意義。對(duì)所有在?n0?右邊的?n?值,函數(shù)?f?(?n?)的數(shù)值等于或大于?c g?(?n?)。

? ??????定理

????????????對(duì)任意兩個(gè)函數(shù)?f?(?n?)和?g?(?n?),?f?(?n?) =?Θ?(?g?(?n?))當(dāng)且僅當(dāng)?f?(?n?) =?O?(?g(n))和?f?(?n?) =?Ω?(?g?(?n?))。

? ? 1.4、o?記號(hào)

? ??????O?記號(hào)提供的漸近上界可能是也可能不是漸近緊確的。這里用?o?記號(hào)表示非漸近緊確的上界。?o?(?g?(?n?))的形式定義為集合:

? ??????O?記號(hào)與?o?記號(hào)的主要區(qū)別在于對(duì)?f?(?n?) =?O?(?g?(?n?)),界0 <=?f?(?n?) <=?c g?(?n?)對(duì)某個(gè)常數(shù)?c?> 0成立;但對(duì)?f?(?n?) =?o?(?g?(?n?)),界0 <=?f?(?n?) <=?c g?(?n?)對(duì)所有常數(shù)?c?> 0都成立。即

? ? 1.5、ω?記號(hào)

????????我們用?ω?記號(hào)來表示非漸近緊確的下界。?ω?(?g?(?n?))的形式定義為集合:

????????關(guān)系?f?(?n?) =?ω?(?g?(?n?))意味著

????????如果這個(gè)極限存在。也就是說當(dāng)?n?趨于無窮時(shí),?f?(?n?)相對(duì)?g?(?n?)來說變得任意大了。

2、算法中常見函數(shù)介紹

? ? 暫未整理

3、參考文檔

? ??算法導(dǎo)論讀書筆記(3)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 版本記錄 前言 將數(shù)據(jù)結(jié)構(gòu)和算法比作計(jì)算機(jī)的基石毫不為過,追求程序的高效是每一個(gè)軟件工程師的夢(mèng)想。下面就是我對(duì)算法...
    刀客傳奇閱讀 2,090評(píng)論 0 0
  • 現(xiàn)在的記性很差,差到想不起來寫一篇文章,寫一些心事。 人性本善還是人性本惡,以前我一直在思考這個(gè)話題,現(xiàn)在大概有答...
    光小年與恒小星閱讀 319評(píng)論 0 0
  • 假期里面沒有去看人山人海,躲在家里自然免不了要跟父母家人打2場(chǎng)麻將。這可真是難為我,長(zhǎng)到這么大,還不會(huì)打麻將,真是...
    sundy小王閱讀 303評(píng)論 0 3
  • 在土地上,我只是棵草, 無論怎樣,都堅(jiān)守著自己的驕傲。 狂風(fēng)暴雨壓不垮, 好吧,這就是我的驕傲。 我就是這樣傲嬌,...
    煬歧閱讀 310評(píng)論 10 24

友情鏈接更多精彩內(nèi)容