算法导论概述
《算法导论》(Introduction to Algorithms)是算法领域的经典教材,由 Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest 和 Clifford Stein 合著(简称 CLRS)。以下是其 第三版 的目录大纲整理(中英文对照),供学习参考:
第一部分 基础知识(Foundations)
- 算法在计算中的作用
(The Role of Algorithms in Computing)
- 算法基础
(Getting Started)
- 插入排序、分治法、渐进符号(如
O(n))。
- 函数的增长
(Growth of Functions)
- 大O、Ω、Θ符号及其数学定义。
- 分治法
(Divide and Conquer)
- 递归式求解(主定理)、最大子数组问题。
- 概率分析和随机算法
(Probabilistic Analysis and Randomized Algorithms)
- 随机化快速排序、雇佣问题。
第二部分 排序和顺序统计量(Sorting and Order Statistics)
- 堆排序
(Heapsort)
- 堆结构、优先队列。
- 快速排序
(Quicksort)
- 分治策略、随机化版本分析。
- 线性时间排序
(Sorting in Linear Time)
- 计数排序、基数排序、桶排序。
- 中位数和顺序统计量
(Medians and Order Statistics)
- 最小/最大值、期望线性时间选择算法。
第三部分 数据结构(Data Structures)
-
基本数据结构
(Elementary Data Structures)
- 栈、队列、链表、指针实现。
-
散列表
(Hash Tables)
- 直接寻址、开放寻址、完全散列。
-
二叉搜索树
(Binary Search Trees)
- 插入、删除、遍历。
-
红黑树
(Red-Black Trees)
- 平衡树的性质与操作。
-
扩充数据结构
(Augmenting Data Structures)
- 区间树、动态顺序统计树。
第四部分 高级设计和分析技术(Advanced Design and Analysis Techniques)
-
动态规划
(Dynamic Programming)
- 矩阵链乘法、最长公共子序列。
-
贪心算法
(Greedy Algorithms)
- 活动选择、霍夫曼编码。
-
摊还分析
(Amortized Analysis)
- 聚合分析、势能法、动态表。
第五部分 高级数据结构(Advanced Data Structures)
-
B树
(B-Trees)
- 磁盘存储优化结构。
-
斐波那契堆
(Fibonacci Heaps)
- 高效合并的优先队列。
-
van Emde Boas树
(van Emde Boas Trees)
- 快速查找、插入、删除(第三版新增)。
-
用于不相交集合的数据结构
(Data Structures for Disjoint Sets)
- 并查集(Union-Find)的路径压缩与按秩合并。
第六部分 图算法(Graph Algorithms)
-
图的算法基础
(Elementary Graph Algorithms)
- BFS、DFS、拓扑排序。
-
最小生成树
(Minimum Spanning Trees)
- Kruskal 算法、Prim 算法。
-
单源最短路径
(Single-Source Shortest Paths)
- Bellman-Ford、Dijkstra 算法。
-
所有结点对的最短路径
(All-Pairs Shortest Paths)
- Floyd-Warshall、Johnson 算法。
-
最大流
(Maximum Flow)
- Ford-Fulkerson 方法、Edmonds-Karp 算法。
第七部分 算法问题选编(Selected Topics)
-
多线程算法
(Multithreaded Algorithms)
- 并行计算模型(第三版新增)。
-
矩阵运算
(Matrix Operations)
- Strassen 矩阵乘法、LU分解。
-
线性规划
(Linear Programming)
- 单纯形法、对偶性。
-
多项式与快速傅里叶变换
(Polynomials and the FFT)
- FFT 算法及其应用。
-
数论算法
(Number-Theoretic Algorithms)
- 欧几里得算法、RSA加密。
-
字符串匹配
(String Matching)
- KMP算法、Rabin-Karp算法。
-
计算几何学
(Computational Geometry)
- 线段相交、凸包问题。
-
NP完全性
(NP-Completeness)
- P、NP、NP-Hard、归约证明。
-
近似算法
(Approximation Algorithms)
- 顶点覆盖、旅行商问题(TSP)。
附录与索引
-
附录A 求和公式
-
附录B 集合等离散数学基础
-
附录C 计数与概率
-
参考文献
-
索引
核心特点
-
数学严谨性:强调算法正确性证明和复杂度分析。
-
广泛覆盖:从基础排序到高级图算法、NP理论。
-
实践结合:每章包含“算法实现思考”和练习题(分难度等级)。
适合读者
-
计算机专业学生:作为算法课程的教材。
-
工程师/研究者:深入理解算法设计与分析。
-
竞赛与面试:覆盖LeetCode/ACM高频考点(如动态规划、图算法)。
学习建议
-
按需阅读:初学可重点学习前四部分,进阶再读高级章节。
-
动手实践:书中伪代码需用编程语言(如Python/C++)实现。
-
结合刷题:配套LeetCode/HackerRank题目巩固知识点。
-
数学基础:提前复习离散数学、概率论和线性代数。
如需电子版或具体章节详解,可进一步沟通!