学好算法对于计算机科学和编程领域的技术人士来说非常重要。算法不仅能改善代码性能,更是人工智能、大数据等领域的核心,它不仅是程序的灵魂,更是进入心仪公司的通行证。
多年来,图灵出版了多本经典算法书,无论是刚要入门的新手,还是有技术基础的中高阶人士,你都可以从中找到自己适用的。今天图灵君整理了 10 本经典算法书,涉及 Python、C语言、Java,这些书可以帮你扎实基础,并提供了可以实践的方法。掌握程序员必备的算法技能,不如从这些书开始入手,一边学习一边练习吧!
像小说一样好读的入门书
《算法图解》
Aditya Bhargava | 著
袁国忠 | 译
推荐理由:作为趣学算法鼻祖,这本书豆瓣评分 8.5,绝对是入门首选。读起来不枯燥,有趣的配图,丰富的示例将算法的基本原理阐明,用学习者最能理解的方式讲解算法。
如果你是初学者,从第一章开始,二分查找、大 O 表示法、两种基本的数据结构以及递归等,给算法打下坚实基础。如果你是有基础的学习者,可以直接从第四章开始,余下的篇幅将主要介绍算法的应用,具体内容包括:面对具体问题时的解决技巧,比如,何时采用贪婪算法或动态规划;散列表的应用;图算法;K 最近邻算法。
不同编程语言的算法修炼
《啊哈!算法》
啊哈磊 | 著
推荐理由:一本你一定能看懂的算法书,讲解 C/C++ 相关算法,作者啊哈磊独特的文风,让你对算法的学习压力瞬间减半。书中涉及的数据结构有栈、队列、链表、树、并查集、堆和图等;涉及的算法有排序、枚举、深度和广度优先搜索、图的遍历,当然还有图论中不可以缺少的四种最短路径算法、两种最小生成树算法、割点与割边算法、二分图的最大匹配算法等。
《Python数据结构与算法分析(第3版)》
布拉德利·N. 米勒;戴维·L. 拉努姆 等 | 著
吕能,刁寿钧 | 译
推荐理由:用 Python 描述数据结构与算法的开山之作,本书汇聚了作者多年的实战经验,向读者透彻讲解在 Python 环境下,如何通过一系列存储机制高效地实现各类算法。读完这本书,读者将深刻理解 Python 数据结构、递归、搜索、排序、树与图的应用,等等。这一版重写了书中的示例代码,并对诸多内容做了修正。
《JavaScript算法:基本原理与代码实现》
司徒正美,李晓晨 | 著
推荐理由:前端大神司徒正美写给前端学习者的面试必备算法书,这本书给出学习者可以套用的算法模板,以 JavaScript 作为演示代码,涉及各种数据结构和常见的算法面试题,没有可怕的数学公式与复杂度证明,为了方便记忆,作者根据每种算法都会给出多种解,读者只需从中选取适合自己的解即可。
程序员必须掌握的 50 个算法
《算法(第4版)》
Robert Sedgewick, Kevin Wayne | 著
谢路云 | 译
推荐理由:作为算法领域经典参考书,这本可以说是最好理解的算法大部头图书,豆瓣评分 9.4,涵盖程序员必须掌握的 50 种算法。
内容对初学者友好,作者提供了 Java 代码,采用了模块化编程风格,方便读者对代码进行改造。另外还有配套网站,提供了书中内容的摘要及更多的代码实现、测试数据、练习、教学课件等资源,帮你一站式学习算法,夯实算法底层基础。
算法终极王炸
《计算机程序设计艺术》
高德纳 | 著
推荐理由:《计算机程序设计艺术》系列是当代最伟大的程序员之一高德纳的著作,也是公认的计算机科学领域权威之作。这套书深入阐述了程序设计理论,可以说读懂了这套书就读懂了程序的灵魂。
数十年来,一直是学生、研究人员和业内人士学习程序设计理论和实践的无价之宝。这一宏伟浩大的工程始于 1962 年,作者计划出版 7 卷,目前已经出版了 4 卷外加一本 MMIX 增补。