猜你喜欢
Python数据结构与算法分析(第3版)

Python数据结构与算法分析(第3版)

书籍作者:布拉德利·N.米勒 ISBN:9787115623348
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:4700
创建日期:2024-04-19 发布日期:2024-04-19
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

了解数据结构与算法是透彻理解计算机科学的前提。随着Python日益广泛的应用,Python程序员需要实现与传统的面向对象编程语言相似的数据结构与算法。本书是用Python描述数据结构与算法的开山之作,汇聚了作者多年的实战经验,向读者透彻讲解在Python环境下,如何通过一系列存储机制有效地实现各类算法。通过本书,读者将深刻理解Python数据结构、递归、搜索、排序、树与图的应用,等等。这一版重写了书中的示例代码,并对诸多内容做了修正。

作者简介

[美] 布拉德利.N. 米勒(Bradley N. Miller)美国路德学院计算机科学名誉教授,曾获美国计算机协会软件系统奖,对Python课程开发有深入研究,由他创立的互动式教科书平台Runestone Interactive与全球600多家教育机构有合作。


[美] 戴维.L. 拉努姆(David L. Ranum)

Merative高级科学家,医学信息学博士,致力于利用自然语言处理等人工智能技术解决医疗问题,曾在美国路德学院讲授计算机科学课程近三十载。


[乌] 罗曼.亚西诺夫斯基(Roman Yasinovskyy)

美国路德学院计算机科学系主任、副教授,授课范围涵盖算法、Web开发、计算机网络、数据库管理系统、操作系统、计算机体系结构以及信息安全等课程。博士毕业于陶森大学应用信息技术专业。


编辑推荐
适读人群 :本书适合以下读者: 1. 希望学习数据结构和算法的Python用户; 2. 计算机专业的学生和老师。

1.若把编写代码比作行军打仗,那么要想称霸沙场,不能仅靠手中的利刃,还需深谙兵法。Python是一把利刃,数据结构与算法则是兵法。只有熟读兵法,才能使利刃所向披靡。

2.本书作者在计算机科学领域深耕数十载,积累了丰富的实战经验。通过学习本书,你将掌握数据结构与算法的基本思想,从而有信心探索任何编程难题的解决方法。

3.内容系统完善,逻辑清晰。不仅能让你学会用Python实现栈、队列、列表等数据结构,掌握大O记法和时间复杂度等概念,利用递归解决汉诺塔问题,还能实现常用的搜索算法和排序算法,并分析性能,掌握树与图在Python中的应用。

4.与第2版相比,第3版不仅对过时的内容进行了更新,还采用了PEP 8 Python编程规范,并对代码进行了重写,引入了pythonds3包等。


目录

前言 iii

第 1章 导论 1

1.1 本章目标 1

1.2 入门 1

1.3 何谓计算机科学 1

1.3.1 何谓编程 3

1.3.2 为何学习数据结构及抽象数据类型 4

1.3.3 为何学习算法 5

1.4 Python基础 5

1.4.1 数据 6

1.4.2 输入与输出 16

1.4.3 控制结构 20

1.4.4 异常处理 23

1.4.5 定义函数 25

1.4.6 Python面向对象编程:定义类 26

1.5 小结 39

1.6 关键术语 40

1.7 练习 40

第 2章 算法分析 42

2.1 本章目标 42

2.2 何谓算法分析 42

2.2.1 大O记法 45

2.2.2 异序词检测示例 48

2.3 Python数据结构的性能 51

2.3.1 列表 51

2.3.2 字典 56

2.4 小结 57

2.5 关键术语 57

2.6 练习 58

第3章 基本数据结构 59

3.1 本章目标 59

3.2 何谓线性数据结构 59

3.3 栈 60

3.3.1 栈抽象数据类型 61

3.3.2 用Python实现栈 62

3.3.3 匹配括号 64

3.3.4 通用问题:符号匹配 66

3.3.5 将十进制数转换成二进制数 67

3.3.6 前序、中序和后序表达式 69

3.4 队列 77

3.4.1 队列抽象数据类型 78

3.4.2 用Python实现队列 78

3.4.3 队列模拟:传土豆 80

3.4.4 队列模拟:打印任务 81

3.4.5 双端队列 87

3.5 双端队列抽象数据类型 87

3.5.1 用Python实现双端队列 88

3.5.2 回文检测器 89

3.6 列表 91

3.6.1 无序列表抽象数据类型 91

3.6.2 实现无序列表:链表 92

3.6.3 有序列表抽象数据类型 100

3.6.4 实现有序列表 101

3.7 小结 104

3.8 关键术语 104

3.9 练习 105

第4章 递归 108

4.1 本章目标 108

4.2 何谓递归 108

4.2.1 计算一列数之和 108

4.2.2 递归三原则 111

4.2.3 将整数转换成任意进制的字符串 111

4.3 栈帧:实现递归 113

4.4 可视化递归 115

4.5 复杂的递归问题 120

4.6 探索迷宫 123

4.7 动态规划 128

4.8 小结 134

4.9 关键术语 134

4.10 练习 134

第5章 搜索和排序 137

5.1 本章目标 137

5.2 搜索 137

5.2.1 顺序搜索 137

5.2.2 二分搜索 140

5.2.3 散列 142

5.3 排序 151

5.3.1 冒泡排序 151

5.3.2 选择排序 154

5.3.3 插入排序 156

5.3.4 希尔排序 158

5.3.5 归并排序 160

5.3.6 快速排序 163

5.4 小结 166

5.5 关键术语 167

5.6 练习 167

第6章 树及其算法 170

6.1 本章目标 170

6.2 示例 170

6.3 术语及定义 173

6.4 实现 175

6.4.1 列表之列表 175

6.4.2 节点与引用 178

6.5 二叉树的应用 180

6.5.1 解析树 180

6.5.2 树的遍历 186

6.6 利用二叉堆实现优先级队列 190

6.6.1 二叉堆的操作 190

6.6.2 二叉堆的实现 191

6.7 二叉搜索树 198

6.7.1 搜索树的操作 198

6.7.2 搜索树的实现 198

6.7.3 搜索树的分析 209

6.8 平衡二叉搜索树 210

6.8.1 AVL树的性能 211

6.8.2 AVL树的实现 212

6.8.3 映射实现总结 219

6.9 小结 219

6.10 关键术语 219

6.11 练习 220

第7章 图及其算法 223

7.1 本章目标 223

7.2 术语及定义 224

7.3 图的抽象数据类型 225

7.3.1 邻接矩阵 226

7.3.2 邻接表 227

7.3.3 实现 227

7.4 广度优先搜索 230

7.4.1 词梯问题 230

7.4.2 构建词梯图 230

7.4.3 实现广度优先搜索 232

7.4.4 分析广度优先搜索 235

7.5 深度优先搜索 236

7.5.1 骑士周游问题 236

7.5.2 构建骑士周游图 236

7.5.3 实现骑士周游 238

7.5.4 分析骑士周游 241

7.5.5 通用深度优先搜索 242

7.5.6 分析深度优先搜索 245

7.6 拓扑排序 246

7.7 强连通分量 247

7.8 最短路径问题 250

7.8.1 Dijkstra算法 252

7.8.2 分析Dijkstra算法 254

7.8.3 Prim算法 254

7.9 小结 258

7.10 关键术语 259

7.11 练习 259

第8章 进阶算法 261

8.1 本章目标 261

8.2 复习Python列表 261

8.3 复习递归 266

8.3.1 同余定理 267

8.3.2 幂剩余 267

8.3.3 最大公因数与逆元 268

8.3.4 RSA算法 271

8.4 复习字典:跳表 275

8.4.1 映射抽象数据类型 276

8.4.2 用Python实现字典 276

8.5 复习树:量化图片 285

8.5.1 数字图像概述 285

8.5.2 量化图片 286

8.5.3 使用八叉树改进量化算法 288

8.6 复习图:模式匹配 296

8.6.1 生物学字符串 296

8.6.2 简单比较 297

8.6.3 图算法:DFA 298

8.6.4 图算法:KMP 300

8.7 小结 302

8.8 关键术语 303

8.9 练习 303

参考资料 305

版权声明 306

短评

相比之下比某东北的出版社的算法讲的透

2023-09-19 17:11:51

这本书收到货了。物流很快。质量很好。快递小哥的服务态度也很好。很满意的一次购物体验。买回来用来学习学习python数据结构和算法。

2023-09-08 22:44:16

产品特色