算法推荐书籍
數(shù)據(jù)結(jié)構(gòu)與算法篇
1.《算法導(dǎo)論》
l推薦理由
這本書深入淺出,全面地介紹了計算機(jī)算法。對每一個算法的分析既易于理解又十分有趣,并保持了數(shù)學(xué)嚴(yán)謹(jǐn)性。本書的設(shè)計目標(biāo)全面,適用于多種用途。涵蓋的內(nèi)容有:算法在計算中的作用,概率分析和隨機(jī)算法的介紹。書中專門討論了線性規(guī)劃,介紹了動態(tài)規(guī)劃的兩個應(yīng)用,隨機(jī)化和線性規(guī)劃技術(shù)的近似算法等,還有有關(guān)遞歸求解、快速排序中用到的劃分方法與期望線性時間順序統(tǒng)計算法,以及對貪心算法元素的討論。此書還介紹了對強(qiáng)連通子圖算法正確性的證明,對哈密頓回路和子集求和問題的NP完全性的證明等內(nèi)容。全書提供了900多個練習(xí)題和思考題以及敘述較為詳細(xì)的實(shí)例研究。
l九度鏈接
/thread-1274-1-1.html
2.《數(shù)據(jù)結(jié)構(gòu)與算法分析—C語言描述》
l推薦理由
現(xiàn)在的程序員總是用著別人封裝好的函數(shù)、類、庫、API,滿滿的,我們就會覺得編程不過是這么回事,搭積木而已,別人都把材料提供好了,至于材料是怎么做的,不用理會。
真的是這樣嗎?說數(shù)據(jù)結(jié)構(gòu)和算法沒用的人,那是因?yàn)樗貌坏健槭裁从貌坏?#xff1f;他的層次決定了他不會接觸到編程最關(guān)鍵最核心的部分——算法。
先不說那些反應(yīng)算法的力量的似乎變態(tài)的問題,也不說2006年第4期《程序員》的專題,只說,當(dāng)我們遇到一個問題時,如何搭建數(shù)學(xué)模型?當(dāng)我們在有限的硬件條件下要完成高速的數(shù)據(jù)處理,如何設(shè)計?當(dāng)我們?yōu)榭蛻糸_發(fā)完一套軟件后,能不能保證未來幾年內(nèi)數(shù)據(jù)猛增不會帶來計算量的指數(shù)級增長?當(dāng)我們需要升級服務(wù)器內(nèi)存和硬盤是,能不能修改幾個函數(shù)就避免硬件的投資?
這些問題的答案,請在這本書中尋找。
l九度鏈接
/thread-1275-1-1.html
3.《計算機(jī)程序設(shè)計藝術(shù)》
l推薦理由
任何人發(fā)現(xiàn)書上的錯誤,都可以向DonaldE. Knuth舉發(fā),并領(lǐng)取$2.56美金,因?yàn)椤?56美分剛好是十六進(jìn)制的一美元”(256pennies is one hexadecimal dollar.)。比爾·蓋茨在1995年說,“如果你認(rèn)為你是一名真正優(yōu)秀的程序員,就去讀第一卷,確定可以解決其中所有的問題。”“如果你能讀懂整套書的話,請給我發(fā)一份你的簡歷。”《計算機(jī)程序設(shè)計藝術(shù)》是Knuth一生中最重要的事業(yè),他寫這本書的目的是“組織和總結(jié)所知道的計算機(jī)方法的相關(guān)知識,并打下堅實(shí)的數(shù)學(xué)、歷史基礎(chǔ)”。
l九度鏈接
/thread-1277-1-1.html
4.《C算法(第一卷):基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)、排序和搜索》
l推薦理由
《C算法(第1卷):基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)、排序和摸索》分4部分、共16章。第一部分“基礎(chǔ)知識”(第1~2章)介紹了基本算法分析原理。第二部分“數(shù)據(jù)結(jié)構(gòu)”(第3~5章)講解算法分析中必須掌握的數(shù)據(jù)結(jié)構(gòu)知識。主要包括基本數(shù)據(jù)結(jié)構(gòu)、抽象數(shù)據(jù)結(jié)構(gòu)、遞歸和樹。第三部分“排序”(第6~11章)按章節(jié)順序分別討論了基本排序方法(如選擇排序、插入排序、冒泡排序、希爾排序等)、快速排序方法,歸并和歸并排序方法、優(yōu)先隊(duì)列與堆排序方法、基數(shù)排序方法以及特殊目的排序方法,并比較了各種排序方法的性能特征。第四部分“搜索”(第12~16章)在進(jìn)一步講解符號表、樹等抽象數(shù)據(jù)類型的基礎(chǔ)上,重點(diǎn)討論哈希方法、基數(shù)搜索以及外部搜索方法。
l九度鏈接
/thread-163-1-1.html
5.《C算法(第二卷):圖算法》
l推薦理由
《C算法(第2卷):圖算法》所討論的圖算法,都是實(shí)際中解決圖問題的最重要的已知方法。這本書的主要宗旨是讓越來越多需要了解這些算法的人的能夠掌握這些方法及基本原理。書中根據(jù)基本原理從基本住處開始循序漸進(jìn)地講解,然后再介紹一些經(jīng)典方法,最后介紹仍在進(jìn)行研究和發(fā)展的現(xiàn)代技術(shù)。精心挑選的實(shí)例、詳盡的圖示以及完整的實(shí)現(xiàn)代碼與正文中的算法和應(yīng)用描述相輔相成。
l九度鏈接
/thread-164-1-1.html
6.《算法藝術(shù)與信息學(xué)競賽》
l推薦理由
計算機(jī)解題的核心是算法設(shè)計。算法設(shè)計涉及許多先修的基礎(chǔ)知識,包括數(shù)據(jù)結(jié)構(gòu)、高級語言程序設(shè)計、離散數(shù)學(xué)、圖論、組合數(shù)學(xué)、人工智能、計算幾何等。當(dāng)然還包括除數(shù)學(xué)與信息學(xué)之外的其他學(xué)科知識,因?yàn)闆]有這些知識,往往連題目都會看不懂,這可能也是要求參加ACM大賽的選手應(yīng)該具備全面科學(xué)素養(yǎng)的原因之一。劉汝佳、黃亮兩位作者都曾在高中時參加過信息學(xué)奧林匹克競賽活動,他們在如何用計算機(jī)解難題方面投入過很大精力,有著比較豐富的經(jīng)驗(yàn)。
l九度鏈接
/thread-122-1-1.html
7.《計算機(jī)算法設(shè)計與分析》
l推薦理由
這本書以算法設(shè)計策略為知識單元系統(tǒng)地介紹計算機(jī)算法的設(shè)計方法和分析技巧。其主要內(nèi)容包括:算法及算法復(fù)雜性基本概念,算法描述,有效算法最常用的設(shè)計策略——遞歸和分治法,動態(tài)規(guī)劃法的設(shè)計要點(diǎn)與適用性,貪心算法,回溯法和分支限界法,許多難解問題的高效算法——概率算法,以及NP完全理論和NP難問題的近似解法。書中既涉及傳統(tǒng)算法的實(shí)例分析,更有算法領(lǐng)域熱點(diǎn)研究課題追蹤,具有很高的實(shí)用價值。
l九度鏈接
/thread-162-1-1.html
總結(jié)
- 上一篇: 深度学习入门笔记(二):神经网络基础
- 下一篇: 出体的真实性