畅销书Python基础教程(第2版)创作者、Python行业大神又翻新大作!知识结构图清楚,語言简约。
这书用Python語言来解读优化算法的剖析和设计构思,关键关心經典的优化算法,协助用户了解基础优化算法难题和解决困难拿下非常好的基本。
蕴涵很多课后练习练习题和资料可参考。
Python是这种面向对象编程、表述型电子计算机编程语言,其主要用途十分普遍,包含数据统计分析、自然语言理解、深度学习、科学计算及其推荐算法搭建等。 这书用Python語言来解读优化算法的剖析和设计构思。这书关键关心經典的优化算法,但一起会为用户了解基础优化算法难题和解决困难拿下非常好的基本。全书共11章。各自详细介绍了树、图、计数问题、梳理递归、遍历、溶解合拼、贪心算法、繁杂依靠、Dijkstra优化算法、配对激光切割难题及其艰难难题以及稀释液等內容。这书在每章节完毕的那时候均有习题和资料可参考,这为用户的个人检查及其深化学习培训出示了较多的便捷。在全书的末尾,得出了习题的提醒,便捷用户开展查缺补漏。 这书定义和知识结构图解读清楚,語言简约。这书合适对Python优化算法很感兴趣的初级客户阅读文章和通过自学,也合适高等学校的计算机专业大学生做为参照教材内容来阅读文章。
目录
- 第1章 引言 1
- 1.1 这是一本怎么样的书 2
- 1.1.1 本书将主要涉及以下内容 3
- 1.1.2 本书还将简单或部分涉及
- 以下内容 3
- 1.1.3 本书不会涉足以下领域 3
- 1.2 为什么要读这本书 3
- 1.3 一些准备工作 5
- 1.4 本书主要内容 5
- 1.5 本章小结 7
- 1.6 如果您感兴趣 7
- 1.7 练习题 7
- 1.8 参考资料 8
- 第2章 基础知识 9
- 2.1 计算领域中一些核心理念 9
- 2.2 渐近记法 11
- 2.2.1 我看不懂这些希腊文 12
- 2.2.2 交通规则 14
- 2.2.3 让我们拿渐近性问题
- 练练吧 16
- 2.2.4 三种重要情况 19
- 2.2.5 实证式算法评估 20
- 2.3 图与树的实现 24
- 2.3.1 邻接列表及其类似结构 26
- 2.3.2 邻接矩阵 29
- 2.3.3 树的实现 32
- 2.3.4 多种表示法 35
- 2.4 请提防黑盒子 36
- 2.4.1 隐性平方级操作 37
- 2.4.2 浮点运算的麻烦 38
- 2.5 本章小结 41
- 2.6 如果您感兴趣 42
- 2.7 练习题 42
- 2.8 参考资料 43
- 第3章 计数初步 46
- 3.1 求和式的含义 46
- 3.1.1 更多希腊字母 47
- 3.1.2 求和式的运用 47
- 3.2 两种赛制的故事 48
- 3.2.1 握手问题 48
- 3.2.2 龟兔赛跑 50
- 3.3 子集与排列组合 54
- 3.4 递归与递归式 56
- 3.4.1 手动推导 57
- 3.4.2 几个重要例子 59
- 3.4.3 猜测与检验 62
- 3.4.4 主定理:一刀切式的
- 解决方案 65
- 3.5 这一切究竟是什么呢 67
- 3.6 本章小结 69
- 3.7 如果您感兴趣 69
- 3.8 练习题 70
- 3.9 参考资料 71
- 第4章 归纳、递归及归简 72
- 4.1 哦,这其实很简单 73
- 4.2 一而再,再而三 74
- 4.3 魔镜,魔镜 77
- 4.4 基于归纳法(与递归法)的设计 82
- 4.4.1 寻找最大排列 82
- 4.4.2 明星问题 86
- 4.4.3 拓扑排序问题 88
- 4.5 更强的假设条件 92
- 4.6 不变式与正确性 94
- 4.7 松弛法与逐步完善 94
- 4.8 归简法 换位法=困难度证明 95
- 4.9 一些解决问题的建议 97
- 4.10 本章小结 98
- 4.11 如果您感兴趣 98
- 4.12 练习题 99
- 4.13 参考资料 101
- 第5章 遍历:算法学中的万能钥匙 102
- 5.1 公园漫步 109
- 5.1.1 不允许出现环路 109
- 5.1.2 停止循环遍历的方式 110
- 5.2 继续深入 111
- 5.3 无限迷宫与最短(不加权)
- 路径问题 115
- 5.4 强连通分量 120
- 5.5 本章小结 123
- 5.6 如果您感兴趣 123
- 5.7 练习题 124
- 5.8 参考资料 125
- 第6章 分解、合并、解决 126
- 6.1 树状问题,即平衡问题 126
- 6.2 经典分治算法 129
- 6.3 折半搜索 129
- 6.3.1 搜索树的遍历及其剪枝 132
- 6.3.2 选取算法 135
- 6.4 折半排序 137
- 排序操作究竟可以有多快 140
- 6.5 三个额外实例 140
- 6.5.1 最近点对问题 141
- 6.5.2 凸包问题 142
- 6.5.3 最大切片问题 144
- 6.6 树的平衡与再平衡 145
- 6.7 本章小结 151
- 6.8 如果您感兴趣 152
- 6.9 练习题 152
- 6.10 参考资料 153
- 第7章 贪心有理吗?请证明 154
- 7.1 步步为营,万无一失 154
- 7.2 背包问题 158
- 7.2.1 分数背包问题 158
- 7.2.2 整数背包问题 159
- 7.3 哈夫曼算法 159
- 7.3.1 具体算法 160
- 7.3.2 首次贪心选择 162
- 7.3.3 走完剩余部分 163
- 7.3.4 最优化归并 164
- 7.4 最小生成树问题 165
- 7.4.1 最短边问题 166
- 7.4.2 其余部分的相关情况 167
- 7.4.3 Kruskal算法 168
- 7.4.4 Prim算法 170
- 7.5 贪心不是问题,问题是
- 何时贪心 173
- 7.5.1 坚持做到最好 173
- 7.5.2 尽量做到完美 174
- 7.5.3 做好安全措施 175
- 7.6 本章小结 177
- 7.7 如果您感兴趣 178
- 7.8 练习题 178
- 7.9 参考资料 179
- 第8章 复杂依赖及其记忆体化 180
- 8.1 不要重复自己 181
- 8.2 有向无环图中的最短路径问题 187
- 8.3 最长递增子序列问题 190
- 8.4 序列比对问题 193
- 8.5 背包问题的反击 196
- 8.6 序列的二元分割 199
- 8.7 本章小结 202
- 8.8 如果您感兴趣 203
- 8.9 练习题 203
- 8.10 参考资料 204
- 第9章 Dijkstra及其朋友们
- 从A到B的旅程 206
- 9.1 扩展知识 207
- 9.2 松弛可“疯狂” 208
- 9.3 找到隐藏的DAG图 213
- 9.4 多对多问题 216
- 9.5 “牵强”的子问题 218
- 9.6 中途相遇 220
- 9.7 把握未来走向 223
- 9.8 本章小结 226
- 9.9 如果您感兴趣 227
- 9.10 练习题 228
- 9.11 参考资料 228
- 第10章 匹配、切割及流量 229
- 10.1 二分图匹配 230
- 10.2 不相交的路径 233
- 10.3 最大流问题 236
- 10.4 最小切割集问题 240
- 10.5 最小成本的流及赋值问题 241
- 10.6 一些应用 243
- 10.7 本章小结 247
- 10.8 如果您感兴趣 247
- 10.9 练习题 248
- 10.10 参考资料 249
- 第11章 困难问题及其(有限)稀释 250
- 11.1 重提归简 251
- 11.2 不待在肯萨斯州了 254
- 11.3 但目前,我们还是得回
- 到肯萨斯州 255
- 11.4 我们应从何处开始?
- 前往何处呢 259
- 11.5 怪物乐园 264
- 11.5.1 背包的返回 264
- 11.5.2 分团与着色 266
- 11.5.3 路径与环路 269
- 11.6 当困难来临的时候,聪明人
- 就开始犯错 272
- 11.7 尽力寻找解决方案 275
- 11.8 这些故事告诉我们 277
- 11.9 本章小结 279
- 11.10 如果您感兴趣 279
- 11.11 练习题 280
- 11.12 参考资料 281
- 附录A 猛踩油门!令Python加速 282
- 附录B 一些著名问题与算法 286
- 问题部分 286
- 算法与数据结构部分 289
- 附录C 图论基础 295
- 附录D 习题提示 301
- 第1章 301
- 第2章 301
- 第3章 303
- 第4章 304
- 第5章 307
- 第6章 308
- 第7章 310
- 第8章 312
- 第9章 313
- 第10章 314
- 第11章 315