推薦一本編程演算法書籍,你推薦哪本?

好多演算法書籍翻譯得生澀難懂,有沒有比較適合一個學編程的大二學生讀的演算法書籍?

如果你現在是一個大二的學生,學的軟體工程專業,已近學了《線數》、《離散數學》、《高數》、《數字電路》、《計算機組成原理》、《C語言》等編程基礎知識,你將怎麼規劃你接下來的大學兩年(包括寒暑假)?


我們非工科大一上課用CLRS。


沒人推薦Algorithm Design?Cornell大神Kleinberg的書,姚班教材,感覺比演算法導論更好入門。



&<編程的本質&>


演算法導論,我也是大二看的,當初在學校里湖面上的一個叫分手亭的地方,一天可以看好幾章,一個星期下來就搞定了


《數據結構與演算法分析:C++描述》這本還不錯,挺適合入門的。


我覺能學完《線數》、《離散數學》、《高數》、《數字電路》這些, 看演算法導論沒問題的。

不懂多看幾次,然後找自己熟悉的語言看演算法的實際實現,多動手,多實踐。

比如說

演算法(第4版)java

演算法:C語言實現


先看《演算法概論》再看《演算法導論》效果不錯


代碼大全 code complete

推薦的原因是,它用圖像形象地描述了編程思路和場景,而不是限制於某一種語言以內。

這種通用思路去思考,有助於理解本質,以及加速對新語言的學習。


因為自己現在剛好大三,雖然自己也做的不是很好,但通過保研北大和進bat的學長的一些經驗分享,給你些建議吧。

1.課內學習是最重要的,首先保證成績,成績對自身的重要性不必說,無論保研還是找工作。

2.大二的時候主要鞏固基礎,主要的專業課基本都在大三,不過演算法和數據結構應該大二就會學,自己私底下看書的話,演算法導論或者演算法4都挺不錯的。有一些演算法基礎過後,沒事在網站上刷刷演算法題,盡量堅持下來。

3.大二的時候,選擇一門語言深入的學習(選擇的時候還是要考慮下市場需求),一直堅持學精。不用過早的接觸實際項目,主要鞏固根基,但平時沒事敲敲代碼,不能光學思想不實現。

4.有了大二的基礎,大三就可以和同學組隊參加比賽或者做老師給的項目。大三的專業課別放鬆,面試考察的重點。

5.寒暑假如果有機會到專業相關的公司鍛煉還是不錯的,如果不相關就算了,有些浪費時間。

6.如果你堅持做了這些,大三下參加春招,大三暑假就開始實習,留在實習公司或者參加大四上的秋招。

然後,你的大學生活就開始了 (最後,英語要學好,學好)


《algorithms》 演算法概論


《編程之美——微軟技術面試心得》

只要有編程基礎就可以看。

當然,書中每個題目的推薦演算法實現,只是給你拓展學習思路、尋找靈感用的,更沒必要死記硬背。


演算法設計手冊(第二版)

英文名: Algorithm Design Manual


如果我一開始就看演算法導論跟演算法4th的話,我可能就堅持不下來了.推薦你看看大話數據結構.就是這樣沒那麼高端跟教課似的口吻,才讓我一直堅持下來看完了.遇到不會的就網上搜搜,這本看完了再看別的就會好點.但是我覺得看是最開始,你有個看書的想法很好,但是最重要的是能寫出來.例如KMP這種對新手有致命殺傷力的演算法,你看懂了跟畫在紙上完全不一樣,在計算機上寫出來跟調試通過還有個過程.只有你調試通過了,你才會真的深刻理解.不然恐怕用不了多久就忘了.

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

再補充一下,你可以把cracking the code interview的題都做出來來鍛鍊自己.


作為一名想學習的大二學生,想要學習演算法和數據結構,卻不知道看什麼書,這確實是一個很尷尬的問題。

作為過來人,我完全知道你的痛苦和迷茫,我當時的解決方法是:1,詢問自己認識的學長、學姐等技術大牛;2,去豆瓣網上搜索演算法書的書評。經驗表明,豆瓣網的效果比較好。

但是,今天我想說的是:技術大牛的演算法學習之路才是最好的解決方案,在此,我推薦一下 Google演算法大牛 鞏朋 的演算法之路 ,MSRA鞏朋的演算法之路 。此文章的特點是:語言幽默,真實經歷,書籍從入門到高級,按序排列,根本停不下來。

當然,如果是已經具備了基本的語法基礎(已經學過嚴蔚敏的《演算法與數據結構》),那麼可以直接嘗試一下這個書單:演算法與數據結構的5本推薦書籍

最後,祝你成功!


《編程珠璣》,可以去豆瓣或者amazon看下評價,書不厚,只有兩百多頁,但是不愧『珠璣』兩個字


《演算法:第四版》,作者Robert Sedgewick是普林斯頓大學的計算機教授,師承Donald Ervin Knuth(就是KMP裡面那個K),保證了權威性。同時書籍全書通過Java代碼實現,體現結構化編程之美,同時大量圖表等視覺元素展示讓原本抽象的概念更加容易理解。實在是非常優秀的一本演算法書籍。

注意事項:

1.自學時可以結合visualalgo可視化觀察數據結構變化過程

2.如對Java語法不熟悉。例如書中列出Comparable介面,可能同時會掉到語法細節的坑裡而不是學習演算法。不拘泥語法細節,了解演算法本質思想是我們的目的。


演算法圖解 (豆瓣)

演算法基礎 (豆瓣)

演算法(第4版) (豆瓣)

演算法導論(原書第3版) (豆瓣)

編程珠璣 (豆瓣)

前四本按照由易到難的順序排列,第五本可看作習題集。


入門:Princeton algo / CMU para algo

演算法:CLRS+DPV


《啊哈演算法》 很通俗的演算法書


推薦閱讀:

有沒有什麼通俗易懂,好看的普及中國歷史的書推薦?(作為初步了解的書)
推薦幾本研究先秦歷史的好的學術著作?
關於建築形態設計邏輯的書有哪些推薦?
讀的書多,寫的作文就一定好嗎?
為什麼遊戲開發沒有好的關於架構的書?

TAG:書籍推薦 | 編程語言 | 演算法 | 編程 | 編程書籍 |