第一部分 基础知识
第一章 算法在计算中的作用
算法(algorithm):用于求解良说明的计算问题的工具,描述一个特定的计算过程来实现输入/输出关系。
算法解决哪种问题
是否具有算法知识与技术的坚实基础是区分真正熟练的程序员与初学者的一个特征。使用现代计算技术,如果你对算法懂得不多,你也可以完成一些任务,但是,如果有一个好的算法背景,那么你可以做的事情就多得多。
第二章 算法基础
第三章 函数的增长
第四章 分治策略
第五章 概率分析和随机算法
第二部分 排序和顺序统计量
第六章 堆排序
第七章 快速排序
第八章 线性时间排序
第九章 中位数和顺序统计量
第三部分 数据结构
第十章 基本数据结构
第十一章 散列表
第十二章 二叉搜索树
第十三章 红黑树
第十四章 数据结构的扩张
第四部分 高级设计和分析技术
第十五章 动态规划
第十六章 贪心算法
第十七章 摊还分析
第五部分 高级数据结构
第十八章 B树
第十九章 斐波那契堆
第二十章 van Emde Boas 树
第二十一章 用于不相交集合的数据结构
第六部分 图算法
第二十二章 基本的图算法
第二十三章 最小生成树
第二十四章 单源最短路径
第二十五章 所有结点对的最短路径问题
第二十六章 最大流
第七部分 算法问题选编
第二十七章 多线程算法
第二十八章 矩阵运算
第二十九章 线性规划
第三十章 多项式与快速傅立叶变换
第三十一章 数论算法
第三十二章 字符串匹配
第三十三章 计算几何学
第三十四章 NP完全性
第三十五章 近似算法
第八部分 附录:数学基础知识
附录A 求和
附录B 集合等离散数学内容
附录C 计算与概率
附录D 矩阵