哪些學習數據結構與演算法的書籍值得推薦?

感謝大家。


2015/08/22更新

更新了下《數據結構(C++語言版)》第三版的封面~

============

想要從事學術研究,對證明演算法正確性和漸近時間上界有執念的,那就看CLRS。這本權威到不能再權威了,沒看過都不太好意思說學過演算法吧。但是不是主啃這本就依樓主心情了。大家的答案當中都或多或少地提到了《演算法導論》(通常以四位作者的名字開頭首字母,CLRS作為簡稱),所以關於如何學習CLRS的一些心得,可以參見《演算法導論》有什麼好的學習心得? - 羅必成的回答(答案里包含算導的部分章節的參考答案鏈接哦~)

其實如果想要快速應付面試演算法的話,刷題還是硬道理。Leetcode之類的就不說了,書籍的話我另外推薦的就是非常經典的《演算法競賽入門經典》系列:

只是想要儘快進入演算法領域,了解演算法在實踐當中的應用的,可以看Sedgewick寫的Algorithms。或者想要從各種數據結構的角度為切入點的話,Data Structures and Algorithm Analysis in C也是不錯的選擇:

最後再推薦一本清華大學鄧俊輝老師的《數據結構(C++語言版)》,懂的人自然懂,就不特別安利了。

像是《啊哈!演算法》之類的,就不是很推薦了。

還有TAOCP,我室友買來就放在書架上用盡一生一世來將它供養的。我是打算等它出全了也買一套,放在書架上供一供。(估計等七冊出全是比較懸了)


推薦在讀經典的introduction to algorithms之前可以先讀jon kleinberg 和eva tardos的algorithm design。這本書很好讀,很適合用來入門,但也不乏深度,用的例子也很經典。雖然本科時候學過演算法,但是現在研究生讀它依然會很有啟發,很喜歡的書。它相比於前一本沒有那麼面面俱到,證明也會少一些,但用來入門很合適。


CLRS啊,盡量看英文版。


http://beust.com/algorithms.pdf


程傑的《大話數據結構》,目前正在看。


不邀自來

數據結構:《數據結構與演算法分析 ——C語言描述》

演算法:《演算法導論》

以上


《演算法》和《演算法導論》都買了,在看《演算法》,剛開始看

因為是編程小白,只能說說直觀感受,給不了太專業的評述!

《演算法》基礎的數據結構方面說得挺詳細的,結合代碼,告訴你在程序中大概要怎麼用,一個重要角色是API!

《演算法導論》告訴你一些演算法的設計思路和數學證明,大量的公式定理,一個重要角色是∑!

我個人偏向從《演算法》入門,有能力最好看英文原版!好後悔沒好好學英文!

共勉!


Algorithms, 4th edition, by Robert Sedgewick and Kevin Wayne.


sedgewick的algorithms

比演算法導論簡單太多的入門書,在我數學渣的時候演算法導論堪稱天書。

講的很紮實,結構編排很好,翻譯算不錯了


有一本小書,台灣版叫做「演演算法」,中文版叫做演算法「演算法」,日本人寫的,很好看。


大話數據結構,很初級入門的書


……最近在啃演算法導論,覺得好麻煩了,然後遇到問題要查一下高等代數,丘老爺的書翻了十幾頁看了之前做的幾個題之後不禁心想還是滾回去看演算法吧=_=


數據結構 嚴蔚敏


這個額,先看一個叫啊哈磊寫的《啊哈,演算法!》,這本書寫得比較有趣,語言也比較生動,很看得下去,就當入個門吧。

然後看一下《演算法》(美國 塞奇威克,韋恩著),這本書我正在看,我覺得它比《演算法導論》,至少能看得下去。

最後你覺得如果還有精力,可以啃啃《演算法導論》……這本書可能我水平不濟,看開始就有點看不下去的感覺……


推薦閱讀:

物聯網工程這個專業到底怎麼樣?報考哪所學校的物聯網專業比較好呢?
為什麼中文不能做變數名?
對互聯網感興趣但數學不好,該怎麼選專業?
在滑鐵盧數學coop,滑鐵盧cs以及多倫多大學數學之間如何抉擇?
有哪些看起來很簡單證明起來卻很難的問題?

TAG:演算法 | 書籍 | 計算機科學 | 數據結構 |