题图来自VIBIA。
关于算法,知乎诸如以下问题受到了众多小伙伴的关注:
怎样学算法?
程序员必须掌握哪些算法?
算法到底该怎么学?
大公司笔试面试有哪些经典算法题目?
怎么看待程序员普遍缺乏数据结构和算法的知识?
算法的基础性和重要性毋庸置疑,此处不再赘述。2017 进入倒计时,每年这个时候都会向小伙伴们汇报工作:分享一年到头大家最爱的图灵书。年度盘点第一期的位置给了Python:《2017年度图灵最受欢迎Python图书TOP10》(点击可查看,看完别忘记回来)。年度盘点第二期的位置给算法。这一年,以下十本图书赢得了读者的青睐,排名依畅销程度:
1. 算法(第4版)
2. 啊哈!算法
3. 算法图解
4. 算法新解
5. 挑战程序设计竞赛 2:算法和数据结构
6. 程序员的算法趣题
7. 学习 JavaScript 数据结构与算法(第2版)
8. 计算机程序设计艺术 卷1:基本算法(第3版)
9. 数据挖掘与分析:概念与算法
10. 算法的乐趣
另外,还要推荐 3 本非常受欢迎的算法通读类图书:
1. 算法小时代
2. 算法帝国
3. 计算进化史:改变数学的命运
1. 算法(第4版)
作者:Kevin Wayne,Robert Sedgewick
译者:谢路云
Sedgewick之巨著,与高德纳 TAOCP 一脉相承
几十年多次修订,超级口碑经典畅销书
涵盖所有程序员必须掌握的 50 种算法
分中文版和英文版,豆瓣 9.4 分
本书作为算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。第4版具体给出了每位程序员应知应会的50个算法,提供了实际代码,而且这些Java代码实现采用了模块化的编程风格,读者可以方便地加以改造。本书配套网站提供了书中内容的摘要及更多的代码实现、测试数据、练习、教学课件等资源。
2. 啊哈!算法
作者:啊哈磊
没有枯燥的描述,没有难懂的公式
一切以实际应用为出发点,通过幽默的语言配以可爱的插图来讲解算法
在轻松愉悦中便掌握算法精髓,感受算法之美
本书中涉及的数据结构有栈、队列、链表、树、并查集、堆和图等;涉及的算法有排序、枚举、 深度和广度优先搜索、图的遍历,当然还有图论中不可以缺少的四种最短路径算法、两种最小生成树算法、 割点与割边算法、二分图的最大匹配算法等。
3. 算法图解
作者:Aditya Bhargava
译者:袁国忠
简单易懂的算法教程
400多个示意图,详细介绍算法执行过程,展示不同算法在性能方面的优缺点
基于Python的代码示例
本书示例丰富,图文并茂,以让人容易理解的方式阐释了算法,旨在帮助程序员在日常项目中更好地发挥算法的能量。书中的前三章将帮助你打下基础,带你学习二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如,何时采用贪婪算法或动态规划;散列表的应用;图算法;K最近邻算法。
4. 算法新解
作者:刘新宇
语言实现涵盖C++、Haskell、Python、Scheme等
七年磨一剑,亚马逊中国高级研发人员重磅力作
函数式算法与常规算法对照解读
伪代码与多语言实现并存,充分发挥语言特性
理论与实例结合,轻松学习算法与数据结构
内含ACM竞赛趣题和传统趣题,发现算法的乐趣
本书的一大特色就是提供了多种编程语言的算法实现代码,并且充分利用了各种语言特性。
本书共分4部分,同时用函数式和传统方法介绍主要的基本算法和数据结构,数据结构部分包括二叉树、红黑树、AVL树、Trie、Patricia、后缀树、B树、二叉堆、二项式堆、斐波那契堆、配对堆、队列、序列等;基本算法部分包括各种排序算法、序列搜索算法、字符串匹配算法(KMP等)、深度优先与广度优先搜索算法、贪心算法以及动态规划。
5. 挑战程序设计竞赛2:
算法和数据结构
作者:渡部有隆
译者:支鹏浩
豆瓣评分9.1的图灵经典《挑战程序设计竞赛》系列第2弹
网罗算法和数据结构的关键知识点
系统学习基础知识,有效运用在线评测(AIZU ONLINE JUDGE)
入门、挑战、进阶,享受收集算法的乐趣
本书分为准备篇、基础篇和应用篇三大部分,借助在线评测系统Aizu Online Judge以及大量例题,详细讲解了算法与复杂度、初等和高等排序、搜索、递归和分治法、动态规划法、二叉搜索树、堆、图、计算几何学、数论等算法和数据结构的关键知识点。
6. 程序员的算法趣题
作者:增井敏克
译者:绝云
2016日本IT技术图书大赏获奖作品
日本人气算法训练栏目“每周算法”精选辑录
14万程序员挑战过的算法PUZZLE
本书是一本解谜式的趣味算法书,从实际应用出发,通过趣味谜题的解谜过程,引导读者在愉悦中提升思维能力、掌握算法精髓。
此外,本书作者在谜题解答上,通过算法的关键原理讲解,从思维细节入手,发掘启发性算法新解,并辅以Ruby、JavaScript等不同语言编写的源代码示例,使读者在算法思维与编程实践的分合之间,切实提高编程能力。
7. 学习JS数据结构与算法(第2版)
作者:Loiane Groner
译者:邓钢,孙晓博,吴双,陈迪,袁源
用 JS 搞定常用数据结构和算法
市面上最受欢迎的 JS 算法书
相较上一版,这一版新增了ES6和ES7的新功能介绍,补充了ES6的当前实现。同时拓展了对树、图、排序算法、动态规划和贪心算法的讨论,增加了AVL树、Dijkstra算法、Floyd-Warshall算法、Prim算法、Kruskal算法、堆排序、分布式排序、背包问题、矩阵链相乘等内容。此外还概述了函数式编程、NP完全理论。
8. 计算机程序设计艺术 卷1
作者:高德纳
译者:李伯民 范明 蒋爱军
《计算机程序设计艺术》系列是公认的计算机科学领域权威之作,深入阐述了程序设计理论,对计算机领域的发展有着极为深远的影响。数十年来,一直是广大学生、研究人员和业内人士学习程序设计理论和实践的无价之宝。这一宏伟浩大的工程始于1962年,计划出版7卷,目前已经出版了4卷。
经典计算机科学巨著重装上市
最年轻图灵奖得主、伟大的程序员高德纳(Donald E. Knuth)作品
入选《美国科学家》20 世纪最重要的12 部学术专著
《卷1:基本算法(第3版)》讲解基本算法,其中包含了其他各卷都需用到的基本内容。本卷从基本概念开始,然后讲述信息结构,并辅以大量的习题及答案。
目前,中文版已经出版 3 卷:《卷1:基本算法(第3版)》《卷2:半数值算法(第3版)》《卷3:排序与查找(第 2 版)》。
9. 数据挖掘与分析
概念与算法
作者:Mohammed J. Zaki , Wagner Meira Jr.
译者:吴诚堃
专注于数据挖掘与分析的基本概念和算法的入门图书
融合机器学习、统计学等相关学科知识,涵盖频繁模式挖掘、聚类、分类等经典算法
兼顾前沿话题,提供算法对应的开源实现方法
配备丰富教辅资源,包括课程幻灯片、教学视频、数据集等
本书内容分为数据分析基础、频繁模式挖掘、聚类和分类四个部分,每一部分的各个章节兼顾基础知识和前沿话题,例如核方法、高维数据分析、复杂图和网络等。每一章最后均附有参考书目和习题。
10. 算法的乐趣
作者:王晓华
CSDN超人气博主、算法专栏达人王晓华力作
从有趣的生活实例出发,广泛涵盖常用算法结构及其应用
算法之大,大到可以囊括宇宙万物的运行规律;算法之小,小到寥寥数行代码即可展现一个神奇的功能。一本书带你走进色彩缤纷的算法世界,让你尽享算法的乐趣。
有读者评论说:先展示有趣的问题,再展示优雅的算法,最后归纳设计思路,是《算法的乐趣》最吸引人的地方。
3 本算法通读类图书
1. 算法小时代
作者:瑟格•阿比特博 吉尔•多维克
译者:任轶
一张俯瞰算法世界的地图
算法和人工智能如何打造一个错综复杂的时代
法兰西科学院院士讲述人人都应了解的算法功与过
人人都能理解、都该理解的算法秘密,没有复杂的数学公式
本书生动介绍了算法的数学原理和性质,描述了算法单纯、本质的功能,分析了算法和人工智能对人类社会现状及未来发展的影响力及其成因。
2. 算法帝国
作者:克里斯托弗•斯坦纳
译者:李筱莹
一次无情算法掌控华尔街的传奇故事
英特尔中国研究院院长 吴甘沙鼎力推荐!
跟随《纽约时报》畅销书作者、TED演讲人Steiner,预见算法的学习与推理逻辑
算法的应用涵盖金融、医疗、法律、体育、娱乐、外交、文化、国家安全等诸多方面,显现出源于人类而又超乎人类的强大威力。本书通过一个又一个引人入胜的故事,向读者介绍了算法掌控世界的真实情况,揭示了“机器人革命”是如何悄悄地在我们身边发生的。
3. 计算进化史
作者:吉尔·多维克
译者:劳佳
展现算法时代,计算为自然科学与哲学研究带来的震撼之力
一段别开生面的数学历程,如何引发一场改变科学面貌的哲学思考
一本荣获法兰西学术院哲学大奖的数学书
本书从计算的变迁这一独特视角回顾了数学、逻辑学和哲学的历史沿革,展现了计算为数学研究发展带来的全新前景,展望了这场数学革命在自然科学、信息科学与哲学领域引发的重大变革。
本书一直是数学、计算机科学和哲学领域的畅销读物,一本数学爱好者都应该读一读的哲学书。
赠书福利
跟其他小伙伴分享下你读过哪本算法图书?这本书有何特色值得分享?并说明你期待的赠书及原因。
精选评论挑选 5 位小伙伴送出评论中期待的赠书。截止 2018年 1 月 2 日 10:00。
PS:下一期,想让我汇报什么方向的图书呢?在评论里翻牌子呗!
☟ 点击【阅读原文】查看图灵算法图书