算法是獨立于編程語言的,無論你是什么程序員都可以把它們應用到自己的編程語言中去,我遇到過很多在編程方面很有經驗的程序員,比如一個Java程序員非常底層的API細節和語言的復雜性,但對算法卻知之甚少。
有一次,我面試一個各項都很優秀的開發者,他擅長Java,多線程,但是他的數據結構和算法真的是差到爆,我問他,為什么他來面試之前不花點時間復習他的算法以及相關的答題的技巧?他的說辭是“這些算法只是用于面試,在實際工作中根本用不著”。確實,在我多年的Java開發生涯中,我確實沒有直接使用過算法,從這一方面來說,他是對的,但是他并沒有認識到算法和數據結構在提高編程技能方面的作用。
相信大家也都知道對于像BAT這樣的企業,如果你能掌握算法和數據結構,那是非常加分的,除了UNIX和C語言,核心的編程依然是算法和數據結構保持不變。所以,算法對一個程序員來說是十分重要的,本文分享9本學習算法的好書:
1、《Introduction to Algorithms》
這是一本最受歡迎的算法書,里面包含了大量的理論,這本書當前版本是第三版,我強烈建議每個程序員在他們的書架上都應該有這本書,但只供簡短的閱讀和參考,一口氣讀完這本書是不可能的。我推薦這本書的另一個原因是它是關于算法的第一本書,全面論述了算法的內容
2、《算法》
這是我一直以來學習算法的首選書籍,只是現在翻它的頻率降低了,通過這本書你會學到很多關于算法的背景知識,現在這本書還有針對不同編程語言的特定版本,如Java和C++,里面涵蓋每位程序員應知應會的50種算法,我認為每位Java程序員都適合這本書。
3、《算法設計指南》
這本書設計了大量的算法及代碼,我特別喜歡這本書的一大原因就是它能讓你在實踐中使用算法,也確實能夠實實在在的幫助你了解特定的算法,并用來解決特定的問題,書中的代碼示例是用C編寫的,但不是很深奧很好理解,這本書我十多年前就買了,到現在依然會是不是看一下
4、《Algorithms For Interviews》
這是另外一本在面試前必讀的算法書籍,封面本身就很有趣了,如果你仔細看,封面上的圖片是用名人的縮略圖繪制而成的,這本書解釋了如何使用算法,我喜歡這本書是因為它的方法,它告訴你有些時候通過不同的方式去學一些東西,會讓你更好的理解他
5、《算法技術手冊》
這是一本很贊的學習編程算法的書,特別是對于Java程序員。它描述的算法側重于實現它們,而不像其他算法書記一樣使用的大量數學知識。所有的算法都以模式的形式呈現,有解釋圖例和偽代碼,以及示例代碼(使用C、c++、Java和Ruby),當然也有相關的算法基礎理論知識。簡而言之,這是程序員學習算法的最佳書籍之一。
6、《算法設計》
這實際上是繼Thomas Cormon的算法導論之后的第二本最好的算法書。它并不是真正的算法介紹,可能更適合有經驗的程序員,書中更側重于算法設計。個人建議你最好先讀好Robert Sedgewick 的《算法》,然后再來讀這本書。
7、《算法引論》
這是一本非常適合自學的書,因為里面有很多問題和例子,它旨在提高讀者解決問題的能力和理解算法設計背后的原則,這一點將會大大提高你的編程技巧
8、《算法設計與分析基礎》
如果你有一定的基礎,建議你把這本書當做你的算法進階,本書是第3版,相對前版調整了多個章節的內容和順序,同時增加了一些算法,并擴展了算法的應用,使得具體算法和通用算法設計技術的對應更加清晰有序。
這本書是為Python程序員設計的,作者Magnus Lie Hetland還撰寫過另一本Python入門書《 Python基礎教程》,本書主要介紹圖形算法,前面已經說過算法是獨立于編程語言的,學習Python的算法并不代表你無法用Java實現它們,但如果你已經有Python基礎,那么本書就能很好的幫助你學習算法,
寫在最后
以上就是今天要和大家分享的算法書,我認為算法是一個非常復雜的主題,建議同一本書可以通讀兩遍,不過死讀書是沒有用的,你還要嘗試用你喜歡的編程語言去實現它們,漸漸地你會發現你的思維和代碼質量有了明顯的改進。最后,我認為世界上只有兩種程序員:一種懂算法,一種不懂。
-
算法
+關注
關注
23文章
4612瀏覽量
92887 -
JAVA
+關注
關注
19文章
2967瀏覽量
104749 -
程序員
+關注
關注
4文章
952瀏覽量
29804
原文標題:無論你是什么技能方向,這些算法書都值得你看
文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論