无论你是什么技能方向,这些算法书都值得你看

程序员书库(ID:OpenSourceTop) 编译

链接:http://www.java67.com/2015/09/top-10-algorithm-books-every-programmer-read-learn.html

算法是独立于编程语言的,无论你是什么程序员都可以把它们应用到自己的编程语言中去,我遇到过很多在编程方面很有经验的程序员,比如一个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版,相对前版调整了多个章节的内容和顺序,同时增加了一些算法,并扩展了算法的应用,使得具体算法和通用算法设计技术的对应更加清晰有序。


9、《Python算法教程》



这本书是为Python程序员设计的,作者Magnus Lie Hetland还撰写过另一本Python入门书《 Python基础教程》,本书主要介绍图形算法,前面已经说过算法是独立于编程语言的,学习Python的算法并不代表你无法用Java实现它们,但如果你已经有Python基础,那么本书就能很好的帮助你学习算法,


写在最后


以上就是今天要和大家分享的算法书,我认为算法是一个非常复杂的主题,建议同一本书可以通读两遍,不过死读书是没有用的,你还要尝试用你喜欢的编程语言去实现它们,渐渐地你会发现你的思维和代码质量有了明显的改进。最后,我认为世界上只有两种程序员:一种懂算法,一种不懂

推荐↓↓↓
程序员书库
上一篇:年后跳槽必看,这份书单让你分分钟拿下offer 下一篇:豆瓣评分8.9!这本原生中文版的JVM宝典,你还没读么?