这本书结合了我的三大爱好:算法、Python编程及诠释事物。对我来说,这三项都是美学问题——找出让事情尽善尽美的方法。这就需要我们首先去发现相关事物的精华所在,然后精雕细琢,使其发光发亮,或至少比原先要闪亮一些。当然,由于某些材料表面的杂质太多,加工的结果可能会有些不尽人意。但幸运的是,本书中所涉及的内容大多都是现成品,因为我所写的都是一些久负盛名的算法及其论证,采用的也是最受欢迎的编程语言之一。至于在诠释事物方面,我一直在努力试着让事情变得尽可能显而易见一些。但即便如此,我也肯定还有许多失败的地方。如果读者有任何对本书的改进建议,我都非常乐意听取。没准这其中的某些意见会成就本书将来的修订版呢!但就目前来说,我还希望读者能享受这本书,用你们的洞察力去重新发现一些玩法,并且去实际运行它们。如果可能的话,用它制造出一些“可怕”的东西也行。总之,想怎么玩就怎么玩吧!
[第1章 引言1.1 这是一本怎么样的书](https://yq.aliyun.com/articles/93664/)1.1.1 本书将主要涉及以下内容1.1.2 本书还将简单或部分涉及以下内容1.1.3 本书不会涉足以下领域1.2 为什么要读这本书1.3 一些准备工作1.4 本书主要内容1.5 本章小结1.6 如果您感兴趣1.7 练习题1.8 参考资料[第2章 基础知识2.1 计算领域中一些核心理念](https://yq.aliyun.com/articles/93714/)2.2 渐近记法2.2.1 我看不懂这些希腊文2.2.2 交通规则2.2.3 让我们拿渐近性问题练练吧2.2.4 三种重要情况2.2.5 实证式算法评估2.3 图与树的实现2.3.1 邻接列表及其类似结构2.3.2 邻接矩阵2.3.3 树的实现2.3.4 多种表示法2.4 请提防黑盒子2.4.1 隐性平方级操作2.4.2 浮点运算的麻烦2.5 本章小结2.6 如果您感兴趣2.7 练习题2.8 参考资料第3章 计数初步第4章 归纳、递归及归简第5章 遍历:算法学中的万能钥匙第6章 分解、合并、解决第7章 贪心有理吗?请证明第8章 复杂依赖及其记忆体化第9章 Dijkstra及其朋友们从A到B的旅程第10章 匹配、切割及流量第11章 困难问题及其(有限)稀释附录A 猛踩油门!令Python加速附录B 一些著名问题与算法附录C 图论基础附录D 习题提示