01 / 导读
导读
适合谁
适合编程和数据结构之后的本科算法课,作者明确并非首次算法启蒙。重点是持续练习设计、解释正确性,并把正确性论证与运行时间分析分开。
需要的基础
先修离散数学、归纳、递归和基本数据结构,复习图、渐近记号与递推式;本书不从头讲队列、散列表或平衡树,应先补齐相关基础。
覆盖内容
从递归、回溯进入动态规划、贪心、图遍历、生成树、最短路径、流、割和NP困难性。作者站另附扩展讲义,但不能把它们全部视为主书内容。
如何使用
写代码前明确输入输出,找一个能暴露错误直觉的小例子;精确定义递归子问题或贪心选择,分别完成正确性证明与复杂度分析。用习题比较两种路线,为失败的改法构造反例,最后才实现并用小规模穷举核对。
版本与来源
作者完整第一版为2019年6月、472页,主书CC BY 4.0;同页其他讲义采用较严格的CC BY-NC-SA 4.0,再利用须区分具体文件,不能混用许可。