01 / 经典教材推荐
经典教材推荐
适合谁
适合刚开始学数据结构、觉得正式教材难以入手的学生,希望补上学位课程所授基础的自学程序员和编程训练营毕业生,以及准备进一步阅读标准教材的读者。本书假定读者已能编写小程序,并想弄清为什么有的代码快、有的代码慢。
需要的基础
能用任一常见语言进行基本编程,包括循环、函数和数组;数学上只需算术。
覆盖内容
以步数衡量效率;时间与空间的大 O 记号;数组、集合以及配合二分查找的有序数组;简单排序算法及其分析;散列表;栈与队列;递归与递归思维;动态规划与记忆化;快速排序与快速选择;链表;二叉搜索树;堆与优先队列;字典树;图及其广度优先、深度优先搜索和 Dijkstra 算法;以及优化代码的实用技巧。
如何使用
巴尔加瓦的 Grokking Algorithms 主要借助插图讲解一组关键算法;本书篇幅更长、以代码为中心,配合练习逐一讲解核心数据结构。若想扎实练习分析真实代码,可选择本书。建议读完一章后,用自己熟悉的语言运行并改写书中示例。
版本与来源
第2版,由 The Pragmatic Bookshelf 于2020年8月出版(ISBN 9781680507225),新增了递归、动态规划和日常运用大 O 的章节,并在全书加入练习。本条目的书目信息来自 The Pragmatic Bookshelf。