书籍详情
数据结构与算法分析:Java语言描述
作者:(美)Mark Allen Weiss著;冯舜玺译;冯舜玺译
出版社:机械工业出版社
出版时间:2004-08-01
ISBN:9787111144045
定价:¥40.00
购买这本书可以去
内容简介
本书是国外数据结构与算法分析方面的标准教材,使用最卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计)。书中着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间做了全面的分析,为读者开发高效率的程序奠定了基础。本书可作为高级数据结构课程或者高等院校本科生、研究生算法分析课程的教材。本书作者在数据结构和算法分析方面卓有建树,他写的关于数据结构和算法分析的著作尤其畅销,并受到广泛好评。本书使用最卓越的Java编程语言作为实现工具对数据结构和算法进行了深入和独到的讨论。书中着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间做了全面的分析。本书的主要特点:·包含用Java语言编写的丰富的样例程序,这些代码可从因特网上得到·专用一章来讨论算法设计技巧,包括贪婪算法、分治算法、动态规划算法、随机化算法以及回溯算法·阐述当前流行的论题和新的数据结构,如斐波那契堆、斜堆、二项队列、跳跃表和伸展树·专用一章讨论摊还分析,并进而考察书中描述的一些高级数据结构的性能·安排了一章讨论高级数据结构及其实现,其中包括红黑树、自上而下伸展树、k-d树、配对堆等·提出一些尚未解决和尚末完全解决的问题·书末附有两个关于Java语言的附录,附录A介绍基本的Java类,附录B则讨论Collections类库,介绍了许多与本书的数据结构和算法密切相关的Java程序。
作者简介
Mark Allen Weiss 佛罗里国际大学计算机学院教授,普林斯顿于数据结构与算法方面的著名教材还有:《数据结构与算法分析——C语言描述》,该书中文版已由机械工业出版社引进出版,以及《Data Structures and Problem Solving :Using Java》、《 Data Structures and Prblem Solving:Using C++》等。他目前是Advanced Placement Computer Science Development Committee主席。
目录
第1章 引论
1. 1 本书讨论的内容
1. 2 数学知识复习
1. 2. 1 指数
1. 2. 2 对数
1. 2. 3 级数
1. 2. 4 模运算
1. 2. 5 证明方法
1. 3 递归简论
1. 4 Java中的一般对象
1. 4. 1 IntCell类
1. 4. 2 MemoryCell类
1. 4. 3 实现一般的findMax方法
1. 5 异常
1. 6 输入和输出
1. 6. 1 基本的流操作
1. 6. 2 StringTokenizer对象
1. 6. 3 顺序文件
1. 7 代码的组织
1. 7. 1 包
1. 7. 2 MyInteger类
1. 7. 3 关于效率的考虑
小结
练习
参考文献
第2章 算法分析
2. 1 数学基础
2. 2 模型
2. 3 要分析的问题
2. 4 运行时间计算
2. 4. 1 一个简单的例子
2. 4. 2 一般法则
2. 4. 3 最大子序列和问题的解
2. 4. 4 运行时间中的对数
2. 4. 5 检验你的分析
2. 4. 6 分析结果的准确性
小结
练习
参考文献
笫3章 表. 栈和队列
3. 1 抽象数据类型(ADT)
3. 2 表ADT
3. 2. 1 表的简单数组实现
3. 2. 2 链表
3. 2. 3 程序设计细节
3. 2. 4 双链表
3. 2. 5 循环链表
3. 2. 6 例子
3. 2. 7 链表的游标实现
3. 3 栈ADT
3. 3. 1 栈模型
3. 3. 2 栈的实现
3. 3. 3 应用
3. 4 队列ADT
3. 4. 1 队列模型
3. 4. 2 队列的数组实现
3. 4. 3 队列的应用
小结
练习
第4章 树
4. 1 预备知识
4. 1. 1 树的实现
4. 1. 2 树的遍历及应用
4. 2 二叉树
4. 2. 1 实现
4. 2. 2 一个例子:表达式树
4. 3 查找树ADT-二叉查找树
4. 3. 1 find
4. 3. 2 findMin和findMax
4. 3. 3 insert
4. 3. 4 remove
4. 3. 5 平均情形分析
4. 4 AVL树
4. 4. 1 单旋转
4. 4. 2 双旋转
4. 5 伸展树
4. 5. 1 一个简单的想法(不能直接使用)
4. 5. 2 展开
4. 6 树的遍历
4. 7 B树
小结
练习
参考文献
第5章 散列
5. 1 一般想法
5. 2 散列函数
5. 3 分离链接法
5. 4 开放定址法
5. 4. 1 线性探测法
5. 4. 2 平方探测法
5. 4. 3 双散列法
5. 5 再散列
5. 6 可扩散列
小结
练习
参考文献
第6章 优先队列(堆)
6. 1 模型
6. 2 一些简单的实现
6. 3 二叉堆
6. 3. 1 结构性质
6. 3. 2 堆序性质
6. 3. 3 基本的堆操作
6. 3. 4 其他的堆操作
6. 4 优先队列的应用
6. 4. 1 选择问题
6. 4. 2 事件模拟
6. 5 d-堆
6. 6 左式堆
6. 6. 1 左式堆性质
6. 6. 2 左式堆操作
6. 7 斜堆
6. 8 二项队列
6. 8. 1 二项队列结构
6. 8. 2 二项队列操作
6. 8. 3 二项队列实现
小结
练习
参考文献
第7章 排序
7. 1 预备知识
7. 2 插入排序
7. 2. 1 算法
7. 2. 2 插入排序的分析
7. 3 一些简单排序算法的下界
7. 4 希尔排序
7. 5 堆排序
7. 6 归并排序
7. 7 快速排序
7. 7. 1 选取枢纽元
7. 7. 2 分割策略
7. 7. 3 小数组
7. 7. 4 实际的快速排序例程
7. 7. 5 快速排序的分析
7. 7. 6 选择问题的线性期望时间算法
7. 8 排序算法的一般下界
7. 9 桶式排序
7. 10 外部排序
7. 10. 1 为什么需要新算法
7. 10. 2 外部排序模型
7. 10. 3 简单算法
7. 10. 4 多路合并
7. 10. 5 多相合并
7. 10. 6 替换选择
小结
练习
参考文献
第8章 不相交集ADT
8. 1 等价关系
8. 2 动态等价性问题
8. 3 基本数据结构
8. 4 灵巧求并算法
8. 5 路径压缩
8. 6 按秩求并和路径压缩的最坏情形
8. 7 一个应用
小结
练习
参考文献
第9章 图论算法
9. 1 若干定义
9. 2 拓扑排序
9. 3 最短路径算法
9. 3. 1 无权最短路径
9. 3. 2 Dijkstra算法
9. 3. 3 具有负边值的图
9. 3. 4 无圈图
9. 3. 5 所有顶点对最短路径
9. 4 网络流问题
9. 5 最小生成树
9. 5. 1 Prim算法
9. 5. 2 Kruskal算法
9. 6 深度优先搜索的应用
9. 6. 1 无向图
9. 6. 2 双连通性
9. 6. 3 欧拉回路
9. 6. 4 有向图
9. 6. 5 查找强分支
9. 7 NP完全性介绍
9. 7. 1 难与易
9. 7. 2 NP类
9. 7. 3 NP完全问题
小结
练习
参考文献
第10章 算法设计技巧
10. 1 贪婪算法
10. 1. 1 一个简单的调度问题
10. 1. 2 哈夫曼编码
10. 1. 3 近似装箱问题
10. 2 分治算法
10. 2. 1 分治算法的运行时间
10. 2. 2 最近点问题
10. 2. 3 选择问题
10. 2. 4 一些算术问题的理论改进
10. 3 动态规划
10. 3. 1 用表代替递归
10. 3. 2 矩阵乘法的顺序安排
10. 3. 3 最优二叉查找树
10. 3. 4 所有点对最短路径
10. 4 随机化算法
10. 4. 1 随机数发生器
10. 4. 2 跳跃表
10. 4. 3 素性测试
10. 5 回溯算法
10. 5. 1 收费公路重建问题
10. 5. 2 博弈
小结
练习
参考文献
第11章 摊还分析
11. 1 一个无关的智力问题
11. 2 二项队列
11. 3 斜堆
11. 4 斐波那契堆
11. 4. 1 切除左式堆中的节点
11. 4. 2 二项队列的懒惰合并
11. 4. 3 斐波那契堆操作
11. 4. 4 时间界的证明
11. 5 伸展树
小结
练习
参考文献
第12章 高级数据结构及其实现
12. 1 自顶向下伸展树
12. 2 红黑树
12. 2. 1 自底向上插入
12. 2. 2 自顶向下红黑树
12. 2. 3 自顶向下删除
12. 3 确定性跳跃表
12. 4 AA树
12. 5 treap树
12. 6 k-d树
12. 7 配对堆
小结
练习
参考文献
附录A 一些库例程
附录B Co11ectioas类库
索引
1. 1 本书讨论的内容
1. 2 数学知识复习
1. 2. 1 指数
1. 2. 2 对数
1. 2. 3 级数
1. 2. 4 模运算
1. 2. 5 证明方法
1. 3 递归简论
1. 4 Java中的一般对象
1. 4. 1 IntCell类
1. 4. 2 MemoryCell类
1. 4. 3 实现一般的findMax方法
1. 5 异常
1. 6 输入和输出
1. 6. 1 基本的流操作
1. 6. 2 StringTokenizer对象
1. 6. 3 顺序文件
1. 7 代码的组织
1. 7. 1 包
1. 7. 2 MyInteger类
1. 7. 3 关于效率的考虑
小结
练习
参考文献
第2章 算法分析
2. 1 数学基础
2. 2 模型
2. 3 要分析的问题
2. 4 运行时间计算
2. 4. 1 一个简单的例子
2. 4. 2 一般法则
2. 4. 3 最大子序列和问题的解
2. 4. 4 运行时间中的对数
2. 4. 5 检验你的分析
2. 4. 6 分析结果的准确性
小结
练习
参考文献
笫3章 表. 栈和队列
3. 1 抽象数据类型(ADT)
3. 2 表ADT
3. 2. 1 表的简单数组实现
3. 2. 2 链表
3. 2. 3 程序设计细节
3. 2. 4 双链表
3. 2. 5 循环链表
3. 2. 6 例子
3. 2. 7 链表的游标实现
3. 3 栈ADT
3. 3. 1 栈模型
3. 3. 2 栈的实现
3. 3. 3 应用
3. 4 队列ADT
3. 4. 1 队列模型
3. 4. 2 队列的数组实现
3. 4. 3 队列的应用
小结
练习
第4章 树
4. 1 预备知识
4. 1. 1 树的实现
4. 1. 2 树的遍历及应用
4. 2 二叉树
4. 2. 1 实现
4. 2. 2 一个例子:表达式树
4. 3 查找树ADT-二叉查找树
4. 3. 1 find
4. 3. 2 findMin和findMax
4. 3. 3 insert
4. 3. 4 remove
4. 3. 5 平均情形分析
4. 4 AVL树
4. 4. 1 单旋转
4. 4. 2 双旋转
4. 5 伸展树
4. 5. 1 一个简单的想法(不能直接使用)
4. 5. 2 展开
4. 6 树的遍历
4. 7 B树
小结
练习
参考文献
第5章 散列
5. 1 一般想法
5. 2 散列函数
5. 3 分离链接法
5. 4 开放定址法
5. 4. 1 线性探测法
5. 4. 2 平方探测法
5. 4. 3 双散列法
5. 5 再散列
5. 6 可扩散列
小结
练习
参考文献
第6章 优先队列(堆)
6. 1 模型
6. 2 一些简单的实现
6. 3 二叉堆
6. 3. 1 结构性质
6. 3. 2 堆序性质
6. 3. 3 基本的堆操作
6. 3. 4 其他的堆操作
6. 4 优先队列的应用
6. 4. 1 选择问题
6. 4. 2 事件模拟
6. 5 d-堆
6. 6 左式堆
6. 6. 1 左式堆性质
6. 6. 2 左式堆操作
6. 7 斜堆
6. 8 二项队列
6. 8. 1 二项队列结构
6. 8. 2 二项队列操作
6. 8. 3 二项队列实现
小结
练习
参考文献
第7章 排序
7. 1 预备知识
7. 2 插入排序
7. 2. 1 算法
7. 2. 2 插入排序的分析
7. 3 一些简单排序算法的下界
7. 4 希尔排序
7. 5 堆排序
7. 6 归并排序
7. 7 快速排序
7. 7. 1 选取枢纽元
7. 7. 2 分割策略
7. 7. 3 小数组
7. 7. 4 实际的快速排序例程
7. 7. 5 快速排序的分析
7. 7. 6 选择问题的线性期望时间算法
7. 8 排序算法的一般下界
7. 9 桶式排序
7. 10 外部排序
7. 10. 1 为什么需要新算法
7. 10. 2 外部排序模型
7. 10. 3 简单算法
7. 10. 4 多路合并
7. 10. 5 多相合并
7. 10. 6 替换选择
小结
练习
参考文献
第8章 不相交集ADT
8. 1 等价关系
8. 2 动态等价性问题
8. 3 基本数据结构
8. 4 灵巧求并算法
8. 5 路径压缩
8. 6 按秩求并和路径压缩的最坏情形
8. 7 一个应用
小结
练习
参考文献
第9章 图论算法
9. 1 若干定义
9. 2 拓扑排序
9. 3 最短路径算法
9. 3. 1 无权最短路径
9. 3. 2 Dijkstra算法
9. 3. 3 具有负边值的图
9. 3. 4 无圈图
9. 3. 5 所有顶点对最短路径
9. 4 网络流问题
9. 5 最小生成树
9. 5. 1 Prim算法
9. 5. 2 Kruskal算法
9. 6 深度优先搜索的应用
9. 6. 1 无向图
9. 6. 2 双连通性
9. 6. 3 欧拉回路
9. 6. 4 有向图
9. 6. 5 查找强分支
9. 7 NP完全性介绍
9. 7. 1 难与易
9. 7. 2 NP类
9. 7. 3 NP完全问题
小结
练习
参考文献
第10章 算法设计技巧
10. 1 贪婪算法
10. 1. 1 一个简单的调度问题
10. 1. 2 哈夫曼编码
10. 1. 3 近似装箱问题
10. 2 分治算法
10. 2. 1 分治算法的运行时间
10. 2. 2 最近点问题
10. 2. 3 选择问题
10. 2. 4 一些算术问题的理论改进
10. 3 动态规划
10. 3. 1 用表代替递归
10. 3. 2 矩阵乘法的顺序安排
10. 3. 3 最优二叉查找树
10. 3. 4 所有点对最短路径
10. 4 随机化算法
10. 4. 1 随机数发生器
10. 4. 2 跳跃表
10. 4. 3 素性测试
10. 5 回溯算法
10. 5. 1 收费公路重建问题
10. 5. 2 博弈
小结
练习
参考文献
第11章 摊还分析
11. 1 一个无关的智力问题
11. 2 二项队列
11. 3 斜堆
11. 4 斐波那契堆
11. 4. 1 切除左式堆中的节点
11. 4. 2 二项队列的懒惰合并
11. 4. 3 斐波那契堆操作
11. 4. 4 时间界的证明
11. 5 伸展树
小结
练习
参考文献
第12章 高级数据结构及其实现
12. 1 自顶向下伸展树
12. 2 红黑树
12. 2. 1 自底向上插入
12. 2. 2 自顶向下红黑树
12. 2. 3 自顶向下删除
12. 3 确定性跳跃表
12. 4 AA树
12. 5 treap树
12. 6 k-d树
12. 7 配对堆
小结
练习
参考文献
附录A 一些库例程
附录B Co11ectioas类库
索引
猜您喜欢