作者:Thomas H.Cormen, Charles E.Leiserson, Ronald L.Rivest, Clifford Stein
7-111-18777-6
¥85.00
Introduction to Algorithms
對于正規(guī)的程序員或者計(jì)算機(jī)科學(xué)系的學(xué)生來說,新版《算法導(dǎo)論》(第2版)是一本不可多得的好書,它建立在第1版的基礎(chǔ)上,并且能對算法學(xué)習(xí)提供權(quán)威性的指導(dǎo)。書中富有條理的論述和嚴(yán)格的數(shù)學(xué)證明,即使那些厭惡數(shù)學(xué)的人,都會感到易于接受。這些無疑也使本書成為了一本出類拔萃的教科書。而且,書中涉及到很多解決現(xiàn)實(shí)中廣泛的計(jì)算問題的算法都是最佳的。
書中大量的實(shí)例與對算法正確性的數(shù)學(xué)證明都顯示出本書對于學(xué)生來說是極好的教科書。但實(shí)際情況還遠(yuǎn)不止如此。作者對每一個算法的解釋證明都十分準(zhǔn)確嚴(yán)格而無可挑剔(書中關(guān)于基本數(shù)學(xué)內(nèi)容的證明不但可以幫助讀者理解每個算法,而且還能使有一定數(shù)學(xué)背景的人欣賞本書的全部成果);每個算法都用偽代碼來描述,能很容易地通過任何一種計(jì)算機(jī)語言(包括C/C++和Java)來實(shí)現(xiàn)。這正是這本經(jīng)典著作最具吸引力的地方。作者使用清晰的圖示展示排序和數(shù)據(jù)結(jié)構(gòu)(從基本鏈表到樹)等算法的原理,這也是本書的另一亮點(diǎn)。即便你不精通數(shù)學(xué),而只將書中的數(shù)學(xué)證明粗略瀏覽,也一定能從本書中受益匪淺。
本書是一本內(nèi)容豐富而權(quán)威的算法專著,涉及許多用于解決復(fù)雜問題(包括動態(tài)編程技術(shù)、貪心算法和平攤分析)和圖問題(用于如航班調(diào)度和裝配線等問題)的高級算法。在這些例子中,作者均給出了涉及每個主題的最新研究成果以及解決方案。本書最后還包含了矩陣運(yùn)算、線性規(guī)劃、計(jì)算多項(xiàng)式以及著名的快速傅里葉變換等多種十分有用的算法。在NP完全問題(像旅行商問題)中,作者向我們闡明了,盡管不是所有的問題都有一個最終確定的結(jié)果和最好的答案,然而能得出可接受的近似解決方法的算法依然可以很好地解決我們遇到的各種現(xiàn)實(shí)問題。
貫穿本書始終的,是作者使用分子生物學(xué)(如人類基因組計(jì)劃)、商業(yè)和工程領(lǐng)域的新鮮例子對算法進(jìn)行深入細(xì)致的討論。每部分的末尾,作者還介紹了與該部分相關(guān)的歷史資料,而這些資料都是用于對算法的各個領(lǐng)域進(jìn)行早期研究的。從總體上講,作者成功地闡述了這一主旨思想:與硬件和軟件一樣,算法是一種“技術(shù)”,能幫助你編寫出性能良好的程序。就像Knuth的《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》第三卷一樣,《算法導(dǎo)論》(第2版)為算法領(lǐng)域中的經(jīng)典著作,匯集了該領(lǐng)域中最先進(jìn)的研究成果。對任何一個經(jīng)驗(yàn)豐富的程序開發(fā)者來說,不論選擇何種編程語言,對真實(shí)世界中軟件領(lǐng)域的擴(kuò)大和性能的提高,本書所闡述的思想都是值得充分關(guān)注的。