从算法到程序(第2版)
¥69.50定价
作者: 徐子珊
出版时间:2015-06
出版社:清华大学出版社
- 清华大学出版社
- 9787302400769
- 2-1
- 28235
- 16开
- 2015-06
- 工学
- 计算机科学与技术
- TP338.6
- 计算机
内容简介
本书第1章讨论算法设计、分析的基本概念。第2章讨论算法设计中最常用的几个数据结构,包括链表、栈、队列、二叉搜索树、散列表等。第3章讨论了算法设计的两个基本策略:渐增策略与分支策略。第1~3章的内容,为读者阅读本书以后的内容奠定了基础。第4章讨论几个代数计算的基本问题及其算法,包括矩阵运算、解线性方程组、多项式运算等。第5章讨论几个关于计算几何的基本问题及其算法,包括线段的相交判断、平面点集的凸包计算、最邻近点对问题等。第6章讨论了关于整数运算的基本问题,包括大整数的表示与运算、最大公约数计算、模运算、素数判定及整数因数分解等。第4~6章的内容为读者深入学习解决各种复杂问题奠定了解决数学计算问题的基础。第7~9章分别用回溯策略、动态规划策略及贪婪策略研究、解决计算机应用面临的最普遍、最典型的组合优化问题。第10章讨论图的搜索算法及其应用,包括深度优先搜索、拓扑排序、有向图的强连通分支计算、关节点计算、广度优先搜索、网络最大流及二部图的最大匹配等问题。第11章讨论了几个文本搜索的有趣算法,包括著名的KMP模式匹配算法、线性时间计算字符串中最长回文子串的Manacher算法、用动态规划策略寻求字符串中指定模式的最佳
目录
第1章 计算问题
1.1 计算问题及其算法
1.1.1 计算问题及其描述
1.1.2 算法及其描述
1.1.3 伪代码的使用约定
1.1.4 算法分析
1.1.5 算法运行时间的渐近表示
1.2 数据结构
1.2.1 什么是数据结构
1.2.2 数据结构对算法效率的影响
1.2.3 字典与字典操作
1.3 程序设计
1.3.1 算法与程序
1.3.2 数据类型的抽象与代码通用性
1.4 数据的输入输出
1.4.1 应用问题
1.4.2 标准输入输出
1.4.3 文件输入输出
1.5 计数问题
1.5.1 简单模拟
1.5.2 加法原理和乘法原理
1.5.3 计算四边形个数
第2章 数据结构基础
2.1 线性表
2.1.1 线性表的链表表示
2.1.2 对链表的操作
2.1.3 链表的程序实现
2.1.4 链表应用
2.2 栈
2.2.1 栈的概念及其链表实现
2.2.2 栈的程序实现
2.2.3 栈的应用
2.3 队列
2.3.1 队列的概念及其链表实现
2.3.2 队列的程序实现
2.3.3 队列的应用
2.4 二叉搜索树
2.4.1 二叉树及其在计算机中的表示
2.4.2 二叉搜索树
2.4.3 二叉搜索树的查询操作
2.4.4 二叉搜索树中元素的增删
2.4.5 红-黑树及其性质
2.4.6 红-黑树的操作
2.4.7 红-黑树的程序实现
2.4.8 二叉搜索树的应用
2.5 散列表
2.5.1 直接寻址表与散列表
2.5.2 用拉链法解决冲突
2.5.3 散列表的程序实现
2.5.4 散列表的应用
第3章 基本算法设计策略
3.1 渐增型算法
3.1.1 有序序列的合并问题
3.1.2 序列的划分问题
3.2 分治算法
3.2.1 归并排序算法
3.2.2 快速排序算法
3.2.3 序统计与选择问题
3.3 排序问题的讨论
3.3.1 排序的性质
3.3.2 比较型排序算法的时间复杂度
3.3.3 应用
3.4 堆与基于堆的优先队列
3.4.1 堆的概念及其创建
3.4.2 基于二叉堆的优先队列
3.4.3 应用
第4章 代数计算
第5章 计算几何
第6章 数论算法
第7章 回溯策略
第8章 动态规划策略
第9章 贪婪策略
第10章 图的搜索算法
第11章 文本搜索
第12章 代码实验
参考文献
1.1 计算问题及其算法
1.1.1 计算问题及其描述
1.1.2 算法及其描述
1.1.3 伪代码的使用约定
1.1.4 算法分析
1.1.5 算法运行时间的渐近表示
1.2 数据结构
1.2.1 什么是数据结构
1.2.2 数据结构对算法效率的影响
1.2.3 字典与字典操作
1.3 程序设计
1.3.1 算法与程序
1.3.2 数据类型的抽象与代码通用性
1.4 数据的输入输出
1.4.1 应用问题
1.4.2 标准输入输出
1.4.3 文件输入输出
1.5 计数问题
1.5.1 简单模拟
1.5.2 加法原理和乘法原理
1.5.3 计算四边形个数
第2章 数据结构基础
2.1 线性表
2.1.1 线性表的链表表示
2.1.2 对链表的操作
2.1.3 链表的程序实现
2.1.4 链表应用
2.2 栈
2.2.1 栈的概念及其链表实现
2.2.2 栈的程序实现
2.2.3 栈的应用
2.3 队列
2.3.1 队列的概念及其链表实现
2.3.2 队列的程序实现
2.3.3 队列的应用
2.4 二叉搜索树
2.4.1 二叉树及其在计算机中的表示
2.4.2 二叉搜索树
2.4.3 二叉搜索树的查询操作
2.4.4 二叉搜索树中元素的增删
2.4.5 红-黑树及其性质
2.4.6 红-黑树的操作
2.4.7 红-黑树的程序实现
2.4.8 二叉搜索树的应用
2.5 散列表
2.5.1 直接寻址表与散列表
2.5.2 用拉链法解决冲突
2.5.3 散列表的程序实现
2.5.4 散列表的应用
第3章 基本算法设计策略
3.1 渐增型算法
3.1.1 有序序列的合并问题
3.1.2 序列的划分问题
3.2 分治算法
3.2.1 归并排序算法
3.2.2 快速排序算法
3.2.3 序统计与选择问题
3.3 排序问题的讨论
3.3.1 排序的性质
3.3.2 比较型排序算法的时间复杂度
3.3.3 应用
3.4 堆与基于堆的优先队列
3.4.1 堆的概念及其创建
3.4.2 基于二叉堆的优先队列
3.4.3 应用
第4章 代数计算
第5章 计算几何
第6章 数论算法
第7章 回溯策略
第8章 动态规划策略
第9章 贪婪策略
第10章 图的搜索算法
第11章 文本搜索
第12章 代码实验
参考文献