-
内容大纲
本书主要讲解Python全部的数据结构和最常见的算法。通过本书的学习,读者将学会创建复杂的数据结构,例如链表、栈、堆、队列、树和图,以及排序,包括冒泡排序、插入排序、堆排序和快速排序。本书还描述了各种选择算法,例如随机选择和确定性选择,并提供了对各种数据结构算法和设计范例的详细讨论,例如贪心算法、分而治之和动态规划。此外,通过易于理解的图片示例解释了复杂的数据结构,例如树和图的概念。读者还将学习各种重要的字符串处理和模式匹配算法,例如KMP和Boyer-Moore算法以及它们在Python中的易于实现的方法。本书可作为使用Python进行编程的软件工程师和学习Python语言的相关人员的参考用书。 -
作者介绍
-
目录
第1章 Python数据类型与结构
1.1 Python 3.10简介
1.2 Python安装
1.2.1 Windows操作系统
1.2.2 Linux操作系统
1.2.3 Mac操作系统
1.3 设置Python开发环境
1.3.1 通过命令行设置
1.3.2 通过Jupyter Notebook进行设置
1.4 数据类型和对象
1.5 基本数据类型
1.5.1 数值类型
1.5.2 布尔类型
1.5.3 序列类型
1.5.4 成员运算符、身份运算符和逻辑运算符
1.5.5 元组
1.6 复杂数据类型
1.6.1 字典
1.6.2 集合
1.7 Python的集合模块
1.7.1 命名元组
1.7.2 双端队列
1.7.3 有序字典
1.7.4 默认字典
1.7.5 ChainMap
1.7.6 计数器对象
1.7.7 UserDict
1.7.8 UserList
1.7.9 UserString
1.8 总结
第2章 算法设计导论
2.1 算法简介
2.2 算法的性能分析
2.2.1 时间复杂度
2.2.2 空间复杂度
2.3 渐进符号
2.3.1 θ符号
2.3.2 O符号
2.3.3 Ω符号
2.4 平摊分析
2.5 组合复杂度类别
2.6 计算算法的运行时间复杂度
2.7 总结
练习
第3章 算法设计技术和策略
3.1 算法设计技术
3.2 递归
3.3 分治法
3.3.1 二分查找
3.3.2 归并排序
3.4 动态规划
3.5 贪婪算法
3.6 总结
练习
第4章 链表
4.1 数组
4.2 链表简介
4.3 单链表
4.3.1 创建和遍历
4.3.2 追加元素
4.3.3 查询列表
4.3.4 删除元素
4.4 双链表
4.4.1 创建和遍历
4.4.2 追加项
4.4.3 查询列表
4.4.4 删除元素
4.5 循环链表
4.5.1 创建和遍历
4.5.2 添加元素
4.5.3 查询列表
4.5.4 删除循环链表中的元素
4.6 链表的实际应用
4.7 总结
练习
第5章 栈和队列
5.1 栈
5.1.1 通过数组实现栈
5.1.2 使用链表实现栈
5.1.3 推入操作
5.1.4 弹出操作
5.1.5 查看操作
5.1.6 栈的应用
5.2 队列
5.2.1 Python的基于列表的队列
5.2.2 基于链表的队列
5.2.3 基于栈的队列
5.2.4 队列的应用
5.3 总结
练习
第6章 树
6.1 术语
6.2 二叉树
6.2.1 节点的实现
6.2.2 树的遍历
6.2.3 表达式树
6.3 二叉搜索树
6.3.1 二叉搜索树的操作
6.3.2 二叉搜索树的优点
6.4 总结
练习
第7章 堆和优先队列
7.1 堆
7.1.1 插入操作
7.1.2 删除操作
7.1.3 删除堆中特定位置的元素
7.1.4 堆排序
7.2 优先队列
7.3 总结
练习
第8章 哈希表
8.1 简介
8.1.1 哈希函数
8.1.2 完美哈希函数
8.2 解决冲突
8.3 实现哈希表
8.3.1 在哈希表中存储元素
8.3.2 扩展哈希表
8.3.3 从哈希表中检索元素
8.3.4 测试哈希表
8.3.5 将哈希表实现为字典
8.3.6 分离链接法
8.4 符号表
8.5 总结
练习
第9章 图和算法
9.1 图
9.1.1 有向图和无向图
9.1.2 有向无环图
9.1.3 加权图
9.1.4 二分图
9.2 图的表示
9.2.1 邻接表
9.2.2 邻接矩阵
9.3 图遍历
9.3.1 广度优先搜索
9.3.2 深度优先搜索
9.4 其他有用的与图相关的方法
9.4.1 最小生成树
9.4.2 Kruskal的最小生成树算法
9.4.3 Prim的最小生成树算法
9.5 总结
练习
第10章 搜索
10.1 简介
10.2 线性搜索
10.2.1 无序线性搜索
10.2.2 有序线性搜索
10.3 跳跃搜索
10.4 二分搜索
10.5 插值搜索
10.6 指数搜索
10.7 选择搜索算法
10.8 总结
练习
第11章 排序
11.1 技术要求
11.2 排序算法
11.3 冒泡排序算法
11.4 插入排序算法
11.5 选择排序算法
11.6 快速排序算法
11.7 快速排序算法的实现
11.8 Timsort算法
11.9 总结
练习
第12章 选择算法
12.1 技术要求
12.2 按排序选择
12.3 随机选择
12.4 确定性选择
12.5 总结
练习
第13章 字符串匹配算法
13.1 技术要求
13.2 字符串符号和概念
13.3 模式匹配算法
13.4 暴力算法
13.5 Rabin-Karp算法
13.6 Knuth-Morris-Pratt算法
13.6.1 prefix函数
13.6.2 理解Knuth-Morris-Pratt算法
13.6.3 实现Knuth-Morris-Pratt算法
13.7 Boyer-Moore算法
13.8 总结
练习
附录 练习答案
第2章 算法设计导论
第3章 算法设计技术和策略
第4章 链表
第5章 栈和队列
第6章 树
第7章 堆和优先队列
第8章 哈希表
第9章 图和算法
第10章 搜索
第11章 排序
第12章 选择算法
第13章 字符串匹配算法
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-

孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-

时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-

本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...
[
