<p>了解数据结构与算法是透彻理解计算机科学的前提。随着Python日益广泛的应用,Python程序员需要实现与传统的面向对象编程语言相似的数据结构与算法。本书是用Python描述数据结构与算法的开山之作,汇聚了作者多年的实战经验,向读者透彻讲解在Python环境下,如何通过一系列存储机制高效地实现各类算法。通过本书,读者将深刻理解Python数据结构、递归、搜索、排序、树与图的应用,等等。</p>
Python数据结构与算法分析(第2版)
✍ Scribed by 布拉德利·米勒; 戴维·拉努姆
- Publisher
- 人民邮电出版社
- Year
- 2019
- Tongue
- Chinese
- Leaves
- 594
- Series
- 图灵程序设计丛书·Python系列
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
了解数据结构与算法是透彻理解计算机科学的前提。随着Python日益广泛的应用,Python程序员需要实现与传统的面向对象编程语言相似的数据结构与算法。本书是用Python描述数据结构与算法的开山之作,汇聚了作者多年的实战经验,向读者透彻讲解在Python环境下,如何通过一系列存储机制高效地实现各类算法。通过本书,读者将深刻理解Python数据结构、递归、搜索、排序、树与图的应用,等等。
✦ Table of Contents
Table of Contents
版权信息
版权声明
前言
致学生
致教师
本书结构
新版改进
致谢
电子书
第 1 章 导论
1.1 本章目标
1.2 入门
1.3 何谓计算机科学
1.3.1 何谓编程
1.3.2 为何学习数据结构及抽象数据类型
1.3.3 为何学习算法
1.4 Python基础
1.4.1 数据
1.4.2 输入与输出
1.4.3 控制结构
1.4.4 异常处理
1.4.5 定义函数
1.4.6 Python面向对象编程:定义类
1.5 小结
1.6 关键术语
1.7 讨论题
1.8 编程练习
第 2 章 算法分析
2.1 本章目标
2.2 何谓算法分析
2.2.1 大 记法
2.2.2 异序词检测示例
2.3 Python数据结构的性能
2.3.1 列表
2.3.2 字典
2.4 小结
2.5 关键术语
2.6 讨论题
2.7 编程练习
第 3 章 基本数据结构
3.1 本章目标
3.2 何谓线性数据结构
3.3 栈
3.3.1 何谓栈
3.3.2 栈抽象数据类型
3.3.3 用Python实现栈
3.3.4 匹配括号
3.3.5 普通情况:匹配符号
3.3.6 将十进制数转换成二进制数
3.3.7 前序、中序和后序表达式
3.4 队列
3.4.1 何谓队列
3.4.2 队列抽象数据类型
3.4.3 用Python实现队列
3.4.4 模拟:传土豆
3.4.5 模拟:打印任务
3.5 双端队列
3.5.1 何谓双端队列
3.5.2 双端队列抽象数据类型
3.5.3 用Python实现双端队列
3.5.4 回文检测器
3.6 列表
3.6.1 无序列表抽象数据类型
3.6.2 实现无序列表:链表
3.6.3 有序列表抽象数据类型
3.6.4 实现有序列表
3.7 小结
3.8 关键术语
3.9 讨论题
3.10 编程练习
第 4 章 递归
4.1 本章目标
4.2 何谓递归
4.2.1 计算一列数之和
4.2.2 递归三原则
4.2.3 将整数转换成任意进制的字符串
4.3 栈帧:实现递归
4.4 递归可视化
谢尔平斯基三角形
4.5 复杂的递归问题
汉诺塔
4.6 探索迷宫
4.7 动态规划
4.8 小结
4.9 关键术语
4.10 讨论题
4.11 编程练习
第 5 章 搜索和排序
5.1 本章目标
5.2 搜索
5.2.1 顺序搜索
5.2.2 二分搜索
5.2.3 散列
5.3 排序
5.3.1 冒泡排序
5.3.2 选择排序
5.3.3 插入排序
5.3.4 希尔排序
5.3.5 归并排序
5.3.6 快速排序
5.4 小结
5.5 关键术语
5.6 讨论题
5.7 编程练习
第 6 章 树
6.1 本章目标
6.2 示例
6.3 术语及定义
6.4 实现
6.4.1 列表之列表
6.4.2 节点与引用
6.5 二叉树的应用
6.5.1 解析树
6.5.2 树的遍历
6.6 利用二叉堆实现优先级队列
6.6.1 二叉堆的操作
6.6.2 二叉堆的实现
6.7 二叉搜索树
6.7.1 搜索树的操作
6.7.2 搜索树的实现
6.7.3 搜索树的分析
6.8 平衡二叉搜索树
6.8.1 AVL树的性能
6.8.2 AVL树的实现
6.8.3 映射实现总结
6.9 小结
6.10 关键术语
6.11 讨论题
6.12 编程练习
第 7 章 图及其算法
7.1 本章目标
7.2 术语及定义
7.3 图的抽象数据类型
7.3.1 邻接矩阵
7.3.2 邻接表
7.3.3 实现
7.4 宽度优先搜索
7.4.1 词梯问题
7.4.2 构建词梯图
7.4.3 实现宽度优先搜索
7.4.4 分析宽度优先搜索
7.5 深度优先搜索
7.5.1 骑士周游问题
7.5.2 构建骑士周游图
7.5.3 实现骑士周游
7.5.4 分析骑士周游
7.5.5 通用深度优先搜索
7.5.6 分析深度优先搜索
7.6 拓扑排序
7.7 强连通单元
7.8 最短路径问题
7.8.1 Dijkstra算法
7.8.2 分析Dijkstra算法
7.8.3 Prim算法
7.9 小结
7.10 关键术语
7.11 讨论题
7.12 编程练习
第 8 章 附加内容
8.1 本章目标
8.2 复习Python列表
8.3 复习递归
8.3.1 同余定理
8.3.2 幂剩余
8.3.3 最大公因数与逆元
8.3.4 RSA算法
8.4 复习字典:跳表
8.4.1 映射抽象数据类型
8.4.2 用Python实现字典
8.5 复习树:量化图片
8.5.1 数字图像概述
8.5.2 量化图片
8.5.3 使用八叉树改进量化算法
8.6 复习图:模式匹配
8.6.1 生物学字符串
8.6.2 简单比较
8.6.3 使用图:DFA
8.6.4 使用图:KMP
8.7 小结
8.8 关键术语
8.9 讨论题
8.10 编程练习
附录 A Python图形包
附录B Python资源
参考资料
看完了
📜 SIMILAR VOLUMES
<p>《数据结构与算法分析:C++描述(第3版)》是数据结构和算法分析的经典教材,书中使用主流的程序设计语言C++作为具体的实现语言。书的内容包括表、栈、队列、树、散列表、优先队列、排序、不相交集算法、图论算法、算法分析、算法设计、摊还分析、查找树算法、k-d树和配对堆等。《数据结构与算法分析:C++描述(第3版)》适合作为计算机相关专业本科生的数据结构课程和研究生算法分析课程的教材。本科生的数据结构课程可以使用《数据结构与算法分析:C++描述(第3版)》第1章~第9章,多学时课程还可以讲解第10章;研究生算法分析课程可以使用第6章~第12章。</p>
<p>本书首先介绍了JavaScript 语言的基础知识以及ES6 和ES7 中引入的新功能,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序、顺序搜索、二分搜索,然后介绍了动态规划和贪心算法等常用的高级算法以及函数式编程,最后还介绍了如何计算算法的复杂度。</p>
书签已装载, 书签制作方法请找 [email protected] 完全免费