淘小兔

本书主要关注经典的算法,但同时会为读者理解基本算法问题和解决问题打下很好的基础。全书共11章。分别介绍了树、图、计数问题、归纳递归、遍历、分解合并、贪心算法、复杂依赖、Dijkstra算法、匹配切割问题以及困难问题及其稀释等内容。本书在每一章结束的时候均有练习题和参考资料,这为读者的自我检查以及进一步学习分享了较多的便利。在全书的结尾,给出了练习题的提示,方便读者进行查漏补缺。 本书概念和知识点讲解清晰,语言简洁。本书适合对Python算法感兴趣的初中级用户阅读和自学,也适合高等院校的计算机系学生作为参考教材来阅读。

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


点击下载

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看内容!

如何获取密码?

 

点击下载