获取下载链接
标签
了解数据结构与算法是透彻理解计算机科学的前提。随着Python日益广泛的应用,Python程序员需要实现与传统的面向对象编程语言相似的数据结构与算法。本书是用Python描述数据结构与算法的开山之作,汇聚了作者多年的实战经验,向读者透彻讲解在Python环境下,如何通过一系列存储机制高效地实现各类算法。通过本书,读者将深刻理解Python数据结构、递归、搜索、排序、树与图的应用,等等。
第1章 导论 1 1.1 本章目标 1 1.2 入门 1 1.3 何谓计算机科学 1 1.3.1 何谓编程 3 1.3.2 为何学习数据结构及抽象数据类型 4 1.3.3 为何学习算法 4 1.4 Python基础 5 1.4.1 数据 5 1.4.2 输入与输出 16 1.4.3 控制结构 18 1.4.4 异常处理 21 1.4.5 定义函数 23 1.4.6 Python面向对象编程:定义类 24 1.5 小结 37 1.6 关键术语 38 1.7 讨论题 38 1.8 编程练习 38 第2章 算法分析 40 2.1 本章目标 0 2.2 何谓算法分析 40 2.2.1 大O记法 43 2.2.2 异序词检测示例 46 2.3 Python数据结构的性能 49 2.3.1 列表 49 2.3.2 字典 53 2.4 小结 55 2.5 关键术语 55 2.6 讨论题 56 2.7 编程练习 56 第3章 基本数据结构 57 3.1 本章目标 57 3.2 何谓线性数据结构 57 3.3 栈 58 3.3.1 何谓栈 58 3.3.2 栈抽象数据类型 59 3.3.3 用Python实现栈 60 3.3.4 匹配括号 62 3.3.5 普通情况:匹配符号 64 3.3.6 将十进制数转换成二进制数 65 3.3.7 前序、中序和后序表达式 67 3.4 队列 75 3.4.1 何谓队列 75 3.4.2 队列抽象数据类型 75 3.4.3 用Python实现队列 76 3.4.4 模拟:传土豆 77 3.4.5 模拟:打印任务 79 3.5 双端队列 84 3.5.1 何谓双端队列 84 3.5.2 双端队列抽象数据类型 84 3.5.3 用Python实现双端队列 85 3.5.4 回文检测器 86 3.6 列表 88 3.6.1 无序列表抽象数据类型 88 3.6.2 实现无序列表:链表 89 3.6.3 有序列表抽象数据类型 97 3.6.4 实现有序列表 97 3.7 小结 100 3.8 关键术语 101 3.9 讨论题 101 3.10 编程练习 102 第4章 递归 105 4.1 本章目标 105 4.2 何谓递归 105 4.2.1 计算一列数之和 105 4.2.2 递归三原则 107 4.2.3 将整数转换成任意进制的字符串 108 4.3 栈帧:实现递归 110 4.4 递归可视化 111 4.5 复杂的递归问题 116 4.6 探索迷宫 118 4.7 动态规划 123 4.8 小结 128 4.9 关键术语 129 4.10 讨论题 129 4.11 编程练习 129 第5章 搜索和排序 131 5.1 本章目标 131 5.2 搜索 131 5.2.1 顺序搜索 131 5.2.2 二分搜索 134 5.2.3 散列 136 5.3 排序 145 5.3.1 冒泡排序 145 5.3.2 选择排序 147 5.3.3 插入排序 149 5.3.4 希尔排序 151 5.3.5 归并排序 153 5.3.6 快速排序 156 5.4 小结 159 5.5 关键术语 160 5.6 讨论题 160 5.7 编程练习 161 第6章 树 163 6.1 本章目标 163 6.2 示例 163 6.3 术语及定义 166 6.4 实现 168 6.4.1 列表之列表 168 6.4.2 节点与引用 171 6.5 二叉树的应用 173 6.5.1 解析树 173 6.5.2 树的遍历 179 6.6 利用二叉堆实现优先级队列 182 6.6.1 二叉堆的操作 182 6.6.2 二叉堆的实现 183 6.7 二叉搜索树 189 6.7.1 搜索树的操作 190 6.7.2 搜索树的实现 190 6.7.3 搜索树的分析 201 6.8 平衡二叉搜索树 202 6.8.1 AVL树的性能 203 6.8.2 AVL树的实现 204 6.8.3 映射实现总结 210 6.9 小结 211 6.10 关键术语 211 6.11 讨论题 211 6.12 编程练习 213 第7章 图及其算法 214 7.1 本章目标 214 7.2 术语及定义 215 7.3 图的抽象数据类型 216 7.3.1 邻接矩阵 216 7.3.2 邻接表 217 7.3.3 实现 218 7.4 宽度优先搜索 220 7.4.1 词梯问题 220 7.4.2 构建词梯图 221 7.4.3 实现宽度优先搜索 223 7.4.4 分析宽度优先搜索 226 7.5 深度优先搜索 226 7.5.1 骑士周游问题 226 7.5.2 构建骑士周游图 227 7.5.3 实现骑士周游 229 7.5.4 分析骑士周游 231 7.5.5 通用深度优先搜索 233 7.5.6 分析深度优先搜索 236 7.6 拓扑排序 236 7.7 强连通单元 238 7.8 最短路径问题 241 7.8.1 Dijkstra算法 243 7.8.2 分析Dijkstra算法 245 7.8.3 Prim算法 245 7.9 小结 248 7.10 关键术语 249 7.11 讨论题 249 7.12 编程练习 250 第8章 附加内容 251 8.1 本章目标 251 8.2 复习Python列表 251 8.3 复习递归 256 8.3.1 同余定理 257 8.3.2 幂剩余 257 8.3.3 最大公因数与逆元 258 8.3.4 RSA算法 261 8.4 复习字典:跳表 264 8.4.1 映射抽象数据类型 265 8.4.2 用Python实现字典 265 8.5 复习树:量化图片 274 8.5.1 数字图像概述 274 8.5.2 量化图片 275 8.5.3 使用八叉树改进量化算法 277 8.6 复习图:模式匹配 284 8.6.1 生物学字符串 285 8.6.2 简单比较 285 8.6.3 使用图:DFA 287 8.6.4 使用图:KMP 288 8.7 小结 291 8.8 关键术语 291 8.9 讨论题 291 8.10 编程练习 292 附录A Python图形包 293 附录B Python资源 294 参考资料295
《Python数据分析与挖掘实战(第2版)》
本书是Python数据分析与挖掘领域的公认的事实标准,第1版销售超过10万册,销售势头依然强劲,被国内100余所高等院校采用为教材,同时也被广大数据科学工作者奉为经典。 作者在大数据挖掘与分析等领域有10余年的工程实践、教学和创办企业的经验,不仅掌握行业的新技术和实践方法,而且洞悉学生和老师的需求与...
查看详情 →《Python神经网络编程》
本书首先从简单的思路着手,详细介绍了理解神经网络如何工作所必须的基础知识。 第一部分介绍基本的思路,包括神经网络底层的数学知识,第二部分是实践,介绍了学习Python编程的流行和轻松的方法,从而逐渐使用该语言构建神经网络,以能够识别人类手写的字母,特别是让其像专家所开发的网络那样地工作。第三部分是扩...
查看详情 →《强化学习(第2版)》
《强化学习(第2版)》作为强化学习思想的深度解剖之作,被业内公认为是一本强化学习基础理论的经典著作。它从强化学习的基本思想出发,深入浅出又严谨细致地介绍了马尔可夫决策过程、蒙特卡洛方法、时序差分方法、同轨离轨策略等强化学习的基本概念和方法,并以大量的实例帮助读者理解强化学习的问题建模过程以及核心的算...
查看详情 →《无处不在的算法》
本书以简单易懂的写作风格,通过解决现实世界常见的问题来介绍各种算法技术,揭示了算法的设计与分析思想。全书共有41章,分为四大部分,图文并茂,把各种算法的核心思想讲得浅显易懂。本书可作为高等院校算法相关课程的本科生教材,也可作为研究人员、专业技术人员的常备参考书。
查看详情 →