第二卷:数据结构与算法
数组、哈希表和树各有擅长的操作。本卷用不变量检查正确性,用复杂度比较成本。十个元素时大家跑得都挺快,数据再加几个零,区别就出来了。
先修知识
覆盖内容
第 1 章先约定如何分析成本,第 2 至 8 章学习数据结构与图,第 9 至 14 章比较算法,第 15 章补充按特定查询需求设计的结构。
第 1 章
第 2 章
第 3 章
第 4 章
第 5 章
第 6 章
第 7 章
第 8 章
第 9 章
第 10 章
第 11 章
第 12 章
第 13 章
第 14 章
第 15 章
学完能做什么
- 为查找、插入、排序或路径问题选一种实现,并说明输入规模与空间限制。
- 用循环不变量、归纳或交换论证解释正确性,再用边界输入找反例。
- 区分最坏、平均与摊还成本;解释一次基准结果能支持多大的结论。
怎样使用这份目录
初学时先读复杂度和线性结构,再学习树、图与算法。复习某个算法时,把一个正常输入和一个边界输入手算出来,再运行实现核对;时间复杂度写对了,数组下标仍然可能越界。