很多开发者都知道“程序=数据结构+算法”这个著名的公式,并不真正明白算法的定义或概念。究竟什么是算法呢?从字面意义上理解,算法即用于计算的方法,通过这种方法可以达到预期的计算结果。
实际上,数据结构与算法分析也是一个大学问,关于这一方面,我不得不感叹,一线架构师的水准是超出我们常人的想象,简直绝了!仅用一份PDF文档就能够搞定,说得非常清楚。
当然,这份「数据结构与算法分析」的文档资料,是可以免费分享的,有需要的朋友,直接私信我【PDF】即可获取~

第一章 引论
第一章包含离散数学和递归的-些复习材料。我相信熟练掌握递归的唯一办法是反复不断地研读一些好的用法。 因此,除第5章外,递归遍及本书每一章的例子之中。第一章还介绍了一些相关知识,作为对基本Java的复习和回顾,包括对Java 5泛型的讨论。
- 本书讨论的内容
- 数学知识复习
- 递归简论
- 实现泛型特性构件pre-Java 5
- 利用Java 5泛型实现泛型特性成分
- 函数对象
第2章 算法分析
第2章讨论算法分析。本章阐述渐近分析及其主要缺点。提供了许多例子,包括对对数运行时间的深入解释。通过直观地把一些简单递归程序转变成迭代程序而对它们进行分析。此外,还介绍了更复杂的分治程序,不过有些分析(求解递推关系)要推迟到第7章再进行详细的讨论。
- 数学基础
- 模型
- 要分析的问题
- 运行时间计算
第3章 表栈和队列
第3章包括表、栈和队列。这一章进行了全面的修订。现在的新版包括对Collections APIArrayList类和LinkedList类的讨论,提供了Collections API ArrayList类和LinkedList类的一个重要子集的若干实现。
- 抽象数据类型
- 表ADT
- Java Clltions AP中的表
- ArrayList类的实现
- Linkedist类的实现
- 栈ADT
- 队列ADT

第4章 树
第4章讨论树,重点是查找树,包括外部查找树(B树)。UNIX文件系统和表达式树是作为例子来介绍的。本章还介绍了AVL树和伸展树。查找树实现细节更仔细的处理可在第12章找到。树的另外一些内容,如文件压缩和博奔树,推迟到第10章讨论。外部介质上的数据结构作为几章中的最后论题来考虑。这一版新增的内容有对Collections API TreeSet类和TreeMap类的讨论,包括一个重要的例子,描述为求解–个问题而使用三种单独的映射。
- 预备知识
- 二叉树
- 查找树ADT-二叉查找树
- AVL树
- 伸展树
- 树的遍历
- B树
- 标准库中的集合与映射
第5章 散列
第5章是相对较短的一章,主要讨论散列表。这里进行了某些分析,本章末尾讨论了可扩散列。
- 一般想法
- 散列函数
- 分离链接法
- 开放定址法
- 再散列
- 标准库的散列表
- 可扩散列
第6章 优先队列(堆)
第6章是关于优先队列的。二叉堆也在这里讲授,还有些附加的材料论述优先队列某些理论上有趣的实现方法。斐波那契堆在第11章讨论,配对堆在第12章讨论。
- 模型
- 一些简单的实现
- 二叉堆
- 优先队列的应用
- d-堆
- 5左式堆
- 斜堆
- 二项队列
- 标准库中的优先队列

筻7章 排序
第7章论述排序。这一章特别关注编程细节和分析。所有重要的通用排序算法均在该章进行了讨论和比较。此外,还对四种排序算法做了详细的分析,它们是:插人排序、希尔排序、堆排序以及快速排序。本章末尾讨论了外部排序。
- 预备知识
- 插入排序
- 一些简单排序算法的下界
- 希尔排序
- 堆排序
- 归并排序
- 快速排序
- 排序算法的一般下界
- 桶式排序
- 外部排序
第8章 不相交集类
第8章讨论不相交集算法并证明其运行时间。这是简短且特殊的一章,如果不讨论Kruskal算法则该章可跳过。
- 等价关系
- 动态等价性问题
- 基本数据结构
- 灵巧求并算法
- 路径压缩
- 按秩求并和路径压缩的最坏情形
- 一个应用
第9章 图论算法
第9章讲授图论算法。图论算法的吸引力不仅因为它们在实践中经常发生,而且还因为它们的运行时间强烈地依赖于数据结构的恰当使用。实际上,所有标准算法都是和相应的数据结构、伪代码以及运行时间的分析一起介绍的。为把这些问题放进一本适当的教材中,我们对复杂性理论(包括NP-完全性和不可判定性)进行了简短的讨论。
- 若干定义
- 拓扑排序
- 最短路径算法
- 网络流问题
- 最小生成树
- 深度优先搜索的应用
- NP完全性介绍

第10章 算法设计技巧
第10章通过考查一般的问题求解技巧讨论算法设计。该章通过大量的实例而得以强化。这一章及后面各章使用的伪代码使得学生在理解例子时不致被实现的细节所困扰。
- 贪婪算法
- 分治算法
- 动态规划
- 随机化算法
- 回溯算法
第11章 摊还分析
第11章处理摊还分析,对来自第4章和第6章的三种数据结构以及本章介绍的斐波那契堆进行了分析。
- 一个无关的智力问题
- 二项队列
- 斜堆
- 斐波那契堆
- 伸展树
第12章 高级数掘结构及其实现
第12章讨论查找树算法、k-d树和配对堆。不同于其他各章,本章给出了查找树和配对堆完整仔细的实现。材料的安排使得教师可以把一些内容纳人到其他各章的讨论之中。例如,第12章中的自顶向下红黑树可以和(第4章的)AVL树一起讨论。
- 有顶向下伸展树
- 红黑树
- 确定性跳跃表
- AA-树
- treap树
- k-d树
- 配对堆

想成功,想进阶,基础要打牢,知识要全面。现在学习,还来得及!
以上这份关于数据结构与算法分析的文档资料,可免费分享,有需要的小伙伴,转发和评论一下这篇文章,关注我,然后私信【PDF】即可免费获取哦~