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

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

评分 4.7
字数
440字
章节数
10
丛书
图灵程序设计丛书·Python系列
ISBN
9787115623348

标签

内容简介

本书的原作是《Problem Solving with Algorithms and Data Structures Using Python》,是用 Python 讲解数据结构与算法的经典教材之一。全书共 8 章:第 1 章从计算机科学、问题求解与面向对象编程讲起,帮助读者准备好 Python 3 的语法与类设计基础;第 2 章引入算法分析,重点讲大 O 记法,并考察 Python 列表与字典各类操作的性能;第 3 章用“抽象数据类型”的思路讲解栈、队列、双端队列和链表,并安排括号匹配、进制转换、表达式求值、队列模拟、回文检测等经典案例;第 4 章讲递归,涉及递归三原则、栈帧、递归可视化、迷宫求解与动态规划;第 5 章讲顺序搜索、二分搜索、散列,以及冒泡、选择、插入、希尔、归并、快速等排序算法并比较其性能;第 6 章讲树,包括树的表示、解析树、树的遍历、二叉堆与优先级队列、二叉搜索树以及 AVL 平衡树;第 7 章讲图,包括图的两种存储表示、广度优先搜索与深度优先搜索、拓扑排序、强连通分量、Dijkstra 与 Prim 算法;第 8 章为进阶专题,涉及 RSA、跳表、用八叉树量化图像、DFA 与 KMP 等内容。第 3 版依据 PEP 8 规范重写了示例代码,更新了过时内容,并改用新的 pythonds3 包,每章都配有小结、关键术语和练习。

编辑推荐

如果把 Python 比作一件称手的兵器,数据结构和算法就是使用这件兵器的方法。本书是较早系统地用 Python 讲数据结构与算法的教材之一,被华盛顿大学、北京大学等多所高校选用,在中文读者中的评价长期保持在 9 分以上。它讲清的是“该用哪种结构、代价有多大”这类判断,贯穿始终的大 O 分析会配合列表、字典、栈、队列、树和图的实现,一处处讲明每一步操作的时间代价,读者能比较清楚地看出为什么用哈希表查找更快、为什么平衡树能避免退化成链表。书里的例子也值得花时间动手写:括号匹配、进制转换、表达式求值、传土豆、打印任务模拟、迷宫求解、词梯、骑士周游,每个都能独立运行,把抽象概念变成可以观察的结果。第 3 版按 PEP 8 规范重写了全部代码,修正了第 2 版中的过时写法,并改用 pythonds3 包,配有每章小结、关键术语与练习,适合课堂教学,也适合自学。需要说明的是,本书侧重实现与复杂度分析,没有展开高级数据结构或算法竞赛式的技巧,想深入图算法与算法竞赛可再拓展其他资料。

适合谁读

适合

  • 已经会写 Python 基础代码、想系统补齐数据结构与算法的自学者
  • 计算机、软件工程等专业本科生,配合数据结构课程当作教材或参考书
  • 需要复习大 O 记法、递归、排序、树与图,以应对笔试和面试的人
  • 希望把算法知识真正写出来,而不只是停留在概念上的在职程序员

不适合

  • 完全没写过 Python、对函数和类都不熟悉的零基础读者
  • 只想刷题速成、追求竞赛级算法技巧的读者
  • 希望系统学习数据结构 C 语言实现的读者,本书不涉及其他语言的版本

阅读建议

  1. 先读第 1、2 章,并在本机配好 Python 3 与 pythonds3 包,把解释器配好,再进入后面的章节
  2. 每章的示例代码都亲手敲一遍并改参数观察运行时间,让大 O 分析从公式变成可以量化的判断
  3. 第 4、5 章(递归与排序、搜索)建议做完全部练习,这部分是后续树与图的直接基础
  4. 可把第 6、7 章的树与图作为专题精读,配套用 LeetCode 上对应的简单题巩固实现细节

出版社简介

人民邮电出版社 中国 · 成立于 1953 年

人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。

目录

  1. 前言
  2. 第1章 导论(计算机科学、Python 基础、面向对象编程:定义类)
  3. 第2章 算法分析(大 O 记法、异序词检测、列表与字典的性能)
  4. 第3章 基本数据结构(栈、队列、双端队列、无序/有序列表与链表)
  5. 第4章 递归(递归三原则、栈帧、递归可视化、探索迷宫、动态规划)
  6. 第5章 搜索和排序(顺序搜索、二分搜索、散列、冒泡/选择/插入/希尔/归并/快速排序)
  7. 第6章 树及其算法(列表之列表、节点与引用、解析树、树的遍历、二叉堆、二叉搜索树、AVL 树)
  8. 第7章 图及其算法(邻接矩阵与邻接表、广度优先搜索、深度优先搜索、拓扑排序、强连通分量、Dijkstra、Prim)
  9. 第8章 进阶算法(列表复习、RSA、跳表、量化图片与八叉树、DFA 与 KMP)
  10. 参考资料

常见问题

这本书第 3 版和第 2 版有什么不同?
第 3 版新增了第三作者罗曼·亚西诺夫斯基,按 PEP 8 规范重写了全部示例代码,修正了过时内容,并改用新的 pythonds3 包。两版章节结构接近,但代码风格与可运行性明显改善,新人入手建议直接选第 3 版。
看这本书需要什么基础?
需要掌握 Python 基本语法、函数定义和类的基本用法。第 1 章会复习这些内容,但篇幅有限;若对列表、字典、循环和面向对象完全陌生,建议先用其他入门书打底。
书中的例子能直接运行吗?
可以。第 3 版的示例基于 Python 3,并按 PEP 8 规范重写。部分章节依赖作者维护的 pythonds3 包,可按书前说明安装;个别案例还标注了配套在线资源。
这本书和《算法导论》是什么关系?
两者定位差别很大。《算法导论》偏重理论证明与伪代码,这本书以 Python 实现为主线,强调动手写代码和复杂度分析,更适合作为本科入门与工程实践之间的过渡。
读完能应对算法面试吗?
能打好基础。本书覆盖面试常考的大 O 分析、排序、二分、散列、二叉树、图遍历与最短路径,但题目量少于刷题书,建议配合题库一起练习。

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

同类高分