跳到内容

第二卷:数据结构与算法 ​

数组、哈希表和树各有擅长的操作。本卷用不变量检查正确性,用复杂度比较成本。十个元素时大家跑得都挺快,数据再加几个零,区别就出来了。

先修知识 ​

  • 能用一种语言写循环、函数和递归,并能读懂数组访问;有缺口时回到编程基础。
  • 理解对数、求和与简单归纳推理;证明方法可以按需查数学基础。

覆盖内容 ​

第 1 章先约定如何分析成本,第 2 至 8 章学习数据结构与图,第 9 至 14 章比较算法,第 15 章补充按特定查询需求设计的结构。

第 1 章 ​

第 2 章 ​

第 3 章 ​

第 4 章 ​

第 5 章 ​

第 6 章 ​

第 7 章 ​

第 8 章 ​

第 9 章 ​

第 10 章 ​

第 11 章 ​

第 12 章 ​

第 13 章 ​

第 14 章 ​

第 15 章 ​

学完能做什么 ​

  • 为查找、插入、排序或路径问题选一种实现,并说明输入规模与空间限制。
  • 用循环不变量、归纳或交换论证解释正确性,再用边界输入找反例。
  • 区分最坏、平均与摊还成本;解释一次基准结果能支持多大的结论。

怎样使用这份目录 ​

初学时先读复杂度和线性结构,再学习树、图与算法。复习某个算法时,把一个正常输入和一个边界输入手算出来,再运行实现核对;时间复杂度写对了,数组下标仍然可能越界。

Built with VitePress | Software Systems Atlas