计划
第 1 章 算法基础
1. 什么是算法?
| # | 算法 | 备注 |
|---|---|---|
| 1 | 欧几里得最大公约数算法 | 已知最古老的求最大公约数的算法 |
| 2 | 埃拉托斯特尼筛法 | 高效生成素数 |
| 3 | 二分查找 | 分治搜索 |
| 4 | 快速幂算法 | 快速幂计算 |
| 5 | 长除法 | 经典的分步算术运算 |
| 6 | 模加法算法 | 循环算术 |
| 7 | 进制转换算法 | 在不同数制间转换 |
| 8 | 阶乘计算 | 递归与迭代方法 |
| 9 | 斐波那契数列 | 递归与动态计算对比 |
| 10 | 汉诺塔 | 递归问题解决模式 |
2. 度量时间与空间
| # | 算法 | 备注 |
|---|---|---|
| 11 | 操作计数 | 手动步数计数以分析复杂度 |
| 12 | 循环分析 | 评估循环的时间开销 |
| 13 | 递归展开 | 分析递归开销 |
| 14 | 摊还分析 | 平均每操作成本 |
| 15 | 空间计数 | 栈和堆跟踪 |
| 16 | 内存占用估算器 | 跟踪每个变量的使用情况 |
| 17 | 时间复杂度表 | 映射 O(1)...O(n²)...O(2ⁿ) |
| 18 | 时空权衡 | 缓存与重新计算的权衡 |
| 19 | 性能剖析算法 | 经验性时间测量 |
| 20 | 基准测试框架 | 比较算法性能 |
3. 大 O、大 Θ、大 Ω
| # | 算法 | 备注 |
|---|---|---|
| 21 | 增长率比较器 | 比较渐近行为 |
| 22 | 主导项提取器 | 简化运行时表达式 |
| 23 | 基于极限的复杂度测试 | 使用极限进行渐近分析 |
| 24 | 求和简化器 | 算术/几何序列求和 |
| 25 | 递归树方法 | 可视化递归开销 |
| 26 | 主定理求值器 | 求解 T(n) 递归式 |
| 27 | 大 Θ 证明构造器 | 界定上界和下界 |
| 28 | 大 Ω 情形查找器 | 最佳情况分析 |
| 29 | 经验复杂度估计器 | 通过倍增实验测量 |
| 30 | 复杂度类别识别器 | 将运行时间匹配到已知类别 |
4. 算法范式(贪心、分治、动态规划)
| # | 算法 | 备注 |
|---|---|---|
| 31 | 贪心找零问题 | 局部最优的逐步选择 |
| 32 | 霍夫曼编码 | 贪心压缩树 |
| 33 | 归并排序 | 分治排序 |
| 34 | 二分查找 | 分治搜索 |
| 35 | Karatsuba 乘法算法 | 递归分治乘法 |
| 36 | 矩阵链乘法 | 具有最优子结构的动态规划 |
| 37 | 最长公共子序列 | 经典动态规划问题 |
| 38 | 钢条切割问题 | 动态规划优化 |
| 39 | 活动选择问题 | 贪心调度 |
| 40 | 最优合并模式 | 贪心文件合并 |
5. 递归关系
| # | 算法 | 备注 |
|---|---|---|
| 41 | 线性递归求解器 | 线性递归的闭式解 |
| 42 | 主定理 | 分治算法复杂度分析 |
| 43 | 代入法 | 归纳证明方法 |
| 44 | 迭代法 | 逐步展开递归式 |
| 45 | 生成函数 | 转换递归关系 |
| 46 | 矩阵快速幂 | 快速求解线性递归 |
| 47 | 递归到动态规划表 | 制表法 |
| 48 | 分治合并模板 | 将递归式转化为算法 |
| 49 | 记忆化递归求解器 | 存储重叠子问题的结果 |
| 50 | 特征多项式 | 求解齐次递归式 |
6. 搜索基础
| # | 算法 | 备注 |
|---|---|---|
| 51 | 线性搜索 | 顺序扫描元素 |
| 52 | 二分查找 | 中点折半 |
| 53 | 跳跃搜索 | 分块跳跃线性搜索 |
| 54 | 指数搜索 | 倍增步长 |
| 55 | 插值搜索 | 根据值估计位置 |
| 56 | 三分查找 | 分成三份 |
| 57 | 斐波那契搜索 | 黄金比例搜索 |
| 58 | 哨兵搜索 | 提前终止优化 |
| 59 | 双向搜索 | 从两端向中间搜索 |
| 60 | 旋转数组搜索 | 适应性二分查找 |
7. 排序基础
| # | 算法 | 备注 |
|---|---|---|
| 61 | 冒泡排序 | 相邻交换排序 |
| 62 | 选择排序 | 每轮查找最小值 |
| 63 | 插入排序 | 增量构建排序 |
| 64 | 希尔排序 | 基于间隔的插入排序 |
| 65 | 归并排序 | 分治排序 |
| 66 | 快速排序 | 基于分区 |
| 67 | 堆排序 | 二叉堆排序 |
| 68 | 计数排序 | 整数键分布排序 |
| 69 | 基数排序 | 按位排序 |
| 70 | 桶排序 | 分组到区间排序 |
8. 数据结构概述
| # | 算法 | 备注 |
|---|---|---|
| 71 | 栈的压入/弹出 | 后进先出操作 |
| 72 | 队列的入队/出队 | 先进先出操作 |
| 73 | 单向链表 | 线性节点链 |
| 74 | 双向链表 | 双向遍历 |
| 75 | 哈希表插入 | 键值索引 |
| 76 | 二叉搜索树插入 | 有序节点放置 |
| 77 | 堆化 | 原地建堆 |
| 78 | 并查集操作 | 不相交集合管理 |
| 79 | 图邻接表构建 | 稀疏表示 |
| 80 | 字典树插入/搜索 | 字符串前缀树 |
9. 图与树概述
| # | 算法 | 备注 |
|---|---|---|
| 81 | 深度优先搜索遍历 | 深度优先探索 |
| 82 | 广度优先搜索遍历 | 层次顺序探索 |
| 83 | 拓扑排序 | 有向无环图排序 |
| 84 | 最小生成树 | Kruskal/Prim 算法概述 |
| 85 | Dijkstra(迪杰斯特拉)最短路径 | 加权图最短路径 |
| 86 | Bellman-Ford(贝尔曼-福特)算法 | 处理负权边 |
| 87 | Floyd-Warshall(弗洛伊德-沃舍尔)算法 | 所有节点对最短路径 |
| 88 | 用于最小生成树的并查集 | 边分组 |
| 89 | 树遍历 | 中序、前序、后序遍历 |
| 90 | 最近公共祖先 | 树中的公共节点 |
10. 算法设计模式
| # | 算法 | 备注 |
|---|---|---|
| 91 | 暴力枚举 | 尝试所有可能性 |
| 92 | 贪心选择 | 每步局部最优 |
| 93 | 分治法 | 分解与合并 |
| 94 | 动态规划 | 重用子问题 |
| 95 | 回溯法 | 带撤销的探索 |
| 96 | 分支限界法 | 剪枝搜索空间 |
| 97 | 随机化算法 | 引入随机性 |
| 98 | 近似算法 | 近似最优解 |
| 99 | 在线算法 | 逐步决策 |
| 100 | 混合策略 | 结合多种范式 |
第 2 章 排序与搜索
11. 基础排序算法(冒泡、插入、选择)
| # | 算法名称 | 说明 |
|---|---|---|
| 101 | 冒泡排序 | 交换相邻的无序元素 |
| 102 | 改进的冒泡排序 | 若已排序则提前停止 |
| 103 | 鸡尾酒排序 | 双向冒泡遍历 |
| 104 | 选择排序 | 每趟选择最小元素 |
| 105 | 双向选择排序 | 每趟同时查找最小值和最大值 |
| 106 | 插入排序 | 将每个元素插入正确位置 |
| 107 | 二分插入排序 | 使用二分查找确定位置 |
| 108 | 侏儒排序 | 类似插入排序的简单交换算法 |
| 109 | 奇偶排序 | 适合并行化的比较排序 |
| 110 | 臭皮匠排序 | 递归式的、古怪的教学用排序算法 |
12. 分治排序算法(归并、快速、堆)
| # | 算法名称 | 说明 |
|---|---|---|
| 111 | 归并排序 | 递归地分解与合并 |
| 112 | 迭代归并排序 | 自底向上的非递归版本 |
| 113 | 快速排序 | 基于划分的递归排序 |
| 114 | Hoare 划分方案 | 经典的快速排序划分方法 |
| 115 | Lomuto 划分方案 | 更简单但效率较低 |
| 116 | 随机化快速排序 | 避免最坏情况的枢轴选择 |
| 117 | 堆排序 | 建堆 + 重复提取最大值 |
| 118 | 三路快速排序 | 高效处理重复元素 |
| 119 | 外部归并排序 | 用于海量数据的基于磁盘的归并排序 |
| 120 | 并行归并排序 | 在线程间分配工作 |
13. 计数与分布排序(计数、基数、桶)
| # | 算法名称 | 说明 |
|---|---|---|
| 121 | 计数排序 | 统计键值出现次数 |
| 122 | 稳定的计数排序 | 保持相等元素的原始顺序 |
| 123 | 基数排序(LSD) | 最低有效位优先 |
| 124 | 基数排序(MSD) | 最高有效位优先 |
| 125 | 桶排序 | 将元素分配到桶中 |
| 126 | 鸽巢排序 | 简单的桶排序变体 |
| 127 | 闪电排序 | 带有原地修正的分布排序 |
| 128 | 邮递员排序 | 稳定的多键排序 |
| 129 | 地址计算排序 | 类似哈希的分布排序 |
| 130 | 扩散排序 | 基数/快速排序混合策略 |
14. 混合排序算法(IntroSort、Timsort)
| # | 算法名称 | 说明 |
|---|---|---|
| 131 | IntroSort | 快速排序 + 堆排序后备 |
| 132 | TimSort | 归并 + 插入 + 利用自然有序段 |
| 133 | 双枢轴快速排序 | 现代快速排序优化 |
| 134 | SmoothSort | 类似堆排序的自适应排序 |
| 135 | 块归并排序 | 缓存高效的归并排序变体 |
| 136 | 自适应归并排序 | 根据数据部分有序程度进行调整 |
| 137 | PDQSort | 模式击败快速排序 |
| 138 | WikiSort | 稳定的原地归并排序 |
| 139 | GrailSort | 原地稳定的归并排序 |
| 140 | 自适应混合排序 | 动态选择排序策略 |
15. 特殊排序算法(循环、侏儒、梳子、煎饼)
| # | 算法名称 | 说明 |
|---|---|---|
| 141 | 循环排序 | 写入次数最少 |
| 142 | 梳子排序 | 间隙逐渐缩小的冒泡排序 |
| 143 | 侏儒排序 | 类似插入排序的交换算法 |
| 144 | 鸡尾酒排序 | 双向冒泡排序 |
| 145 | 煎饼排序 | 基于翻转的排序 |
| 146 | 双调排序 | 并行网络排序 |
| 147 | 奇偶归并排序 | 排序网络设计 |
| 148 | 睡眠排序 | 使用时间作为排序键 |
| 149 | 珠排序 | 模拟重力 |
| 150 | 猴子排序 | 随机排列直到有序 |
16. 线性与二分搜索
| # | 算法名称 | 说明 |
|---|---|---|
| 151 | 线性搜索 | 顺序扫描 |
| 152 | 线性搜索(哨兵) | 在末尾设置哨兵元素 |
| 153 | 二分搜索(迭代) | 每次循环将区间减半 |
| 154 | 二分搜索(递归) | 通过递归将区间减半 |
| 155 | 二分搜索(下界) | 查找第一个 >= 目标的位置 |
| 156 | 二分搜索(上界) | 查找第一个 > 目标的位置 |
| 157 | 指数搜索 | 步长倍增 |
| 158 | 跳跃搜索 | 固定步长跳跃后线性搜索 |
| 159 | 斐波那契搜索 | 黄金比例风格的跳跃搜索 |
| 160 | 均匀二分搜索 | 避免重复计算中点 |
17. 插值与指数搜索
| # | 算法名称 | 说明 |
|---|---|---|
| 161 | 插值搜索 | 根据值估算索引位置 |
| 162 | 递归插值搜索 | 根据估算的中点进行划分 |
| 163 | 指数搜索 | 倍增然后二分细化 |
| 164 | 倍增搜索 | 通用的指数搜索模式 |
| 165 | 疾驰搜索 | 用于 TimSort 合并阶段 |
| 166 | 无界二分搜索 | 动态确定搜索边界 |
| 167 | 求根二分法 | 搜索零点 |
| 168 | 黄金分割搜索 | 优化单峰函数 |
| 169 | 斐波那契搜索(最优) | 类似黄金分割搜索 |
| 170 | 跳跃 + 二分混合搜索 | 组合探测策略 |
18. 选择算法(快速选择、中位数的中位数)
| # | 算法名称 | 说明 |
|---|---|---|
| 171 | 快速选择 | 基于划分的选择算法 |
| 172 | 中位数的中位数 | 确定性枢轴选择 |
| 173 | 随机化选择 | 随机枢轴版本 |
| 174 | 对答案进行二分搜索 | 基于范围的选择 |
| 175 | 顺序统计树 | 支持排名查询的二叉搜索树 |
| 176 | 锦标赛树选择 | 层次化比较 |
| 177 | 堆选择(最小堆) | 维护前 k 个元素 |
| 178 | 部分快速排序 | 排序部分前缀 |
| 179 | BFPRT 算法 | 线性时间选择算法 |
| 180 | 第 K 大流元素 | 流式数据选择 |
19. 区间搜索与最近邻
| # | 算法名称 | 说明 |
|---|---|---|
| 181 | 二分搜索区间 | 查找下界和上界 |
| 182 | 线段树查询 | 区间求和/最小值/最大值 |
| 183 | 树状数组查询 | 高效前缀和 |
| 184 | 区间树搜索 | 重叠区间查询 |
| 185 | KD 树搜索 | 空间最近邻搜索 |
| 186 | R 树查询 | 几何范围搜索 |
| 187 | 区间最小值查询 | 稀疏表方法 |
| 188 | Mo 算法 | 离线查询重排序 |
| 189 | 扫描线区间搜索 | 排序 + 扫描技术 |
| 190 | 球树最近邻搜索 | 度量空间搜索 |
20. 搜索优化与变体
| # | 算法名称 | 说明 |
|---|---|---|
| 191 | 带容差的二分搜索 | 用于浮点数值 |
| 192 | 三分搜索 | 单峰函数优化 |
| 193 | 基于哈希的搜索 | 期望 O(1) 查找 |
| 194 | 布隆过滤器查找 | 概率成员查询 |
| 195 | 布谷鸟哈希搜索 | 双哈希重定位 |
| 196 | 罗宾汉哈希搜索 | 均衡探测长度 |
| 197 | 跳跃一致性哈希搜索 | 稳定的哈希分配 |
| 198 | 字典树前缀搜索 | 自动补全查找 |
| 199 | 后缀数组模式搜索 | 快速子串查找 |
| 200 | 无限数组搜索 | 动态边界查找 |
第 3 章 数据结构实战
21. 数组、链表、栈、队列
| # | 算法 | 备注 |
|---|---|---|
| 201 | 动态数组扩容 | 容量翻倍策略 |
| 202 | 循环数组实现 | 回绕索引 |
| 203 | 单向链表插入/删除 | 基本节点操作 |
| 204 | 双向链表插入/删除 | 双向链接 |
| 205 | 栈压入/弹出 | 后进先出结构 |
| 206 | 队列入队/出队 | 先进先出结构 |
| 207 | 双端队列实现 | 双端队列 |
| 208 | 循环队列 | 固定大小、回绕的队列 |
| 209 | 用队列实现栈 | 使用两个队列实现栈 |
| 210 | 用栈实现队列 | 使用两个栈实现队列 |
22. 哈希表及其变体(布谷鸟、罗宾汉、一致性)
| # | 算法 | 备注 |
|---|---|---|
| 211 | 哈希表插入 | 键值对与取模运算 |
| 212 | 线性探测 | 顺序解决冲突 |
| 213 | 二次探测 | 非线性探测序列 |
| 214 | 双重哈希 | 冲突时使用备用哈希函数 |
| 215 | 布谷鸟哈希 | 双表重定位策略 |
| 216 | 罗宾汉哈希 | 均衡探测长度的公平性 |
| 217 | 链式哈希表 | 链表桶 |
| 218 | 完美哈希 | 无冲突映射 |
| 219 | 一致性哈希 | 跨节点的稳定分布 |
| 220 | 动态重哈希 | 在负载因子阈值时调整大小 |
23. 堆(二叉堆、斐波那契堆、配对堆)
| # | 算法 | 备注 |
|---|---|---|
| 221 | 二叉堆插入 | 上浮维护 |
| 222 | 二叉堆删除 | 下沉维护 |
| 223 | 建堆(堆化) | 自底向上 $O(n)$ 构建 |
| 224 | 堆排序 | 重复提取最大值 |
| 225 | 最小堆实现 | 用于访问最小元素 |
| 226 | 最大堆实现 | 用于访问最大元素 |
| 227 | 斐波那契堆插入/删除 | 摊还高效操作 |
| 228 | 配对堆合并 | 轻量级可合并堆 |
| 229 | 二项堆合并 | 合并相同阶的树 |
| 230 | 左倾堆合并 | 维护秩偏斜堆 |
24. 平衡树(AVL、红黑树、伸展树、树堆)
| # | 算法 | 备注 |
|---|---|---|
| 231 | AVL 树插入 | 旋转以维持平衡 |
| 232 | AVL 树删除 | 删除后重新平衡 |
| 233 | 红黑树插入 | 颜色修复与旋转 |
| 234 | 红黑树删除 | 维持不变式 |
| 235 | 伸展树访问 | 将访问节点移至根 |
| 236 | 树堆插入 | 基于优先级的旋转 |
| 237 | 树堆删除 | 随机化平衡 |
| 238 | 加权平衡树 | 维护子树权重 |
| 239 | 替罪羊树重建 | 在大小阈值时重新平衡 |
| 240 | AA 树 | 简化的红黑树变体 |
25. 线段树与树状数组
| # | 算法 | 备注 |
|---|---|---|
| 241 | 构建线段树 | 递归构造 |
| 242 | 区间和查询 | 递归或迭代查询 |
| 243 | 区间更新 | 懒惰传播技术 |
| 244 | 单点更新 | 修改单个元素 |
| 245 | 构建树状数组 | 增量二进制索引 |
| 246 | 树状数组更新 | 更新累积和 |
| 247 | 树状数组查询 | 前缀和检索 |
| 248 | 线段树合并 | 合并子节点结果 |
| 249 | 可持久化线段树 | 维护版本历史 |
| 250 | 二维线段树 | 用于矩阵区间查询 |
26. 并查集
| # | 算法 | 备注 |
|---|---|---|
| 251 | Make-Set | 初始化每个元素 |
| 252 | Find | 定位代表元 |
| 253 | Union | 合并两个集合 |
| 254 | 按秩合并 | 将较小树附加到较大树 |
| 255 | 路径压缩 | 扁平化树结构 |
| 256 | 支持回滚的并查集 | 支持撤销操作 |
| 257 | 树上的并查集 | 跟踪子树连通性 |
| 258 | Kruskal 最小生成树 | 使用并查集选择边 |
| 259 | 连通分量 | 对图节点进行分组 |
| 260 | 离线查询并查集 | 处理动态合并 |
27. 概率数据结构(布隆过滤器、Count-Min 草图、HyperLogLog)
| # | 算法 | 备注 |
|---|---|---|
| 261 | 布隆过滤器插入 | 哈希到位数组 |
| 262 | 布隆过滤器查询 | 概率成员检查 |
| 263 | 计数布隆过滤器 | 通过计数器支持删除 |
| 264 | 布谷鸟过滤器 | 空间高效的替代方案 |
| 265 | Count-Min 草图 | 近似频率表 |
| 266 | HyperLogLog | 基数估计 |
| 267 | Flajolet-Martin | 早期概率计数 |
| 268 | MinHash | 估计 Jaccard 相似度 |
| 269 | 蓄水池抽样 | 随机 k 样本流 |
| 270 | 跳跃布隆过滤器 | 布隆过滤器上的范围查询 |
28. 跳表与 B 树
| # | 算法 | 备注 |
|---|---|---|
| 271 | 跳表插入 | 概率分层列表 |
| 272 | 跳表删除 | 调整指针 |
| 273 | 跳表搜索 | 通过塔层跳跃 |
| 274 | B 树插入 | 溢出时分裂 |
| 275 | B 树删除 | 下溢时合并 |
| 276 | B+ 树搜索 | 基于叶节点的顺序扫描 |
| 277 | B+ 树范围查询 | 高效有序访问 |
| 278 | B* 树 | 空间效率更高的变体 |
| 279 | 自适应基数树 | 字节级分支 |
| 280 | 字典树压缩 | 路径压缩优化 |
29. 可持久化与函数式数据结构
| # | 算法 | 备注 |
|---|---|---|
| 281 | 可持久化栈 | 保留所有版本 |
| 282 | 可持久化数组 | 写时复制分段 |
| 283 | 可持久化线段树 | 版本化更新 |
| 284 | 可持久化链表 | 不可变节点 |
| 285 | 函数式队列 | 摊还反转列表 |
| 286 | 手指树 | 快速连接与分割 |
| 287 | 拉链结构 | 局部化修改 |
| 288 | 可持久化红黑树 | 不可变平衡树 |
| 289 | 版本化字典树 | 历史字符串查找 |
| 290 | 可持久化并查集 | 时间旅行连通性 |
30. 高级树与区间查询
| # | 算法 | 备注 |
|---|---|---|
| 291 | 稀疏表构建 | 静态区间最小/最大值 |
| 292 | 笛卡尔树 | RMQ 到 LCA 的转换 |
| 293 | 线段树 Beats | 处理复杂查询 |
| 294 | 归并排序树 | 区间计数查询 |
| 295 | 小波树 | 按值排名/选择 |
| 296 | KD 树 | 多维查询 |
| 297 | 区间树 | 正交区间查询 |
| 298 | 二维树状数组 | 矩阵前缀和 |
| 299 | 树堆分割/合并 | 基于区间的树堆操作 |
| 300 | 树上的莫队算法 | 离线子树查询 |
第 4 章. 图算法
31. 遍历 (DFS, BFS, 迭代加深)
| # | 算法 | 备注 |
|---|---|---|
| 301 | 深度优先搜索 (递归) | 深入探索,然后回溯 |
| 302 | 深度优先搜索 (迭代) | 基于栈的探索 |
| 303 | 广度优先搜索 (队列) | 层次顺序遍历 |
| 304 | 迭代加深 DFS | 结合深度限制与完备性 |
| 305 | 双向 BFS | 从两端搜索 |
| 306 | 网格上的 DFS | 迷宫求解 / 连通分量 |
| 307 | 网格上的 BFS | 无权图中的最短路径 |
| 308 | 多源 BFS | 并行层次扩展 |
| 309 | 拓扑排序 (基于 DFS) | 有向无环图排序 |
| 310 | 拓扑排序 (Kahn 算法) | 入度跟踪 |
32. 强连通分量 (Tarjan, Kosaraju)
| # | 算法 | 备注 |
|---|---|---|
| 311 | Kosaraju 算法 | 两遍 DFS |
| 312 | Tarjan 算法 | 低链接值发现 |
| 313 | Gabow 算法 | 栈对跟踪 |
| 314 | SCC DAG 构建 | 缩点后的分量图 |
| 315 | SCC 在线合并 | 增量式缩点 |
| 316 | 分量标签传播 | 迭代式标记 |
| 317 | 基于路径的 SCC | 使用路径栈的 DFS |
| 318 | Kosaraju 并行版本 | 通过并行 DFS 求 SCC |
| 319 | 动态 SCC 维护 | 添加/删除边 |
| 320 | 加权图的 SCC | 结合边权重 |
33. 最短路径 (Dijkstra, Bellman-Ford, A*, Johnson)
| # | 算法 | 备注 |
|---|---|---|
| 321 | Dijkstra (二叉堆) | 贪心边松弛 |
| 322 | Dijkstra (斐波那契堆) | 改进的优先队列 |
| 323 | Bellman-Ford | 支持负权重 |
| 324 | SPFA (队列优化) | 更快的平均情况 Bellman-Ford |
| 325 | A* 搜索 | 启发式引导的路径 |
| 326 | Floyd–Warshall | 所有节点对最短路径 |
| 327 | Johnson 算法 | 使用重赋权的所有节点对最短路径 |
| 328 | 0-1 BFS | 基于双端队列的最短路径 |
| 329 | Dial 算法 | 整数权重桶 |
| 330 | 多源 Dijkstra | 多个起点 |
34. 最短路径变体 (0–1 BFS, 双向, 启发式 A*)
| # | 算法 | 备注 |
|---|---|---|
| 331 | 0–1 BFS | 适用于权重为 0 或 1 的边 |
| 332 | 双向 Dijkstra | 中间相遇 |
| 333 | 带欧几里得启发式的 A* | 空间最短路径 |
| 334 | ALT 算法 | A* 地标 + 三角不等式 |
| 335 | 收缩层次结构 | 道路网络的预处理 |
| 336 | CH 查询算法 | 基于捷径的路由 |
| 337 | Bellman-Ford 队列变体 | 提前终止 |
| 338 | 带提前停止的 Dijkstra | 到达目标时停止 |
| 339 | 目标导向搜索 | 限制扩展方向 |
| 340 | Yen 的 K 最短路径 | 枚举多个最佳路径 |
35. 最小生成树 (Kruskal, Prim, Borůvka)
| # | 算法 | 备注 |
|---|---|---|
| 341 | Kruskal 算法 | 排序边 + 并查集 |
| 342 | Prim 算法 (堆) | 从种子节点生长 MST |
| 343 | Prim 算法 (邻接矩阵) | 稠密图变体 |
| 344 | Borůvka 算法 | 分量合并 |
| 345 | 反向删除 MST | 移除重边 |
| 346 | 通过 Dijkstra 技巧的 MST | 适用于正权重 |
| 347 | 动态 MST 维护 | 处理边更新 |
| 348 | 最小瓶颈生成树 | 最小化最大边权重 |
| 349 | 曼哈顿 MST | 网格图优化 |
| 350 | 欧几里得 MST (Kruskal + 几何) | 使用 Delaunay 图 |
36. 流 (Ford–Fulkerson, Edmonds–Karp, Dinic)
| # | 算法 | 备注 |
|---|---|---|
| 351 | Ford–Fulkerson | 增广路方法 |
| 352 | Edmonds–Karp | 基于 BFS 的 Ford–Fulkerson |
| 353 | Dinic 算法 | 层次图 + 阻塞流 |
| 354 | 推送-重标记 | 局部预流推送 |
| 355 | 容量缩放 | 利用容量层级加速 |
| 356 | 代价缩放 | 最小代价优化 |
| 357 | 最小代价最大流 (Bellman-Ford) | 带代价的增广路径 |
| 358 | 最小代价最大流 (SPFA) | 更快的平均情况 |
| 359 | 带需求的环流 | 广义流公式化 |
| 360 | 连续最短路径 | 增量式最小代价更新 |
37. 割 (Stoer–Wagner, Karger, Gomory–Hu)
| # | 算法 | 备注 |
|---|---|---|
| 361 | Stoer–Wagner 最小割 | 全局最小割 |
| 362 | Karger 随机割 | 随机收缩边 |
| 363 | Karger–Stein | 递归随机割 |
| 364 | Gomory–Hu 树 | 所有节点对最小割 |
| 365 | 最大流最小割 | 对偶定理应用 |
| 366 | Stoer–Wagner 重复阶段 | 多轮遍历 |
| 367 | 动态最小割 | 边更新时维护 |
| 368 | 最小 s–t 割 (Edmonds–Karp) | 基于流 |
| 369 | 近似最小割 | 随机采样 |
| 370 | 最小 k 割 | 将图划分为 k 部分 |
38. 匹配 (Hopcroft–Karp, Hungarian, Blossom)
| # | 算法 | 备注 |
|---|---|---|
| 371 | 二分图匹配 (DFS) | 简单增广路径 |
| 372 | Hopcroft–Karp | O(E√V) 二分图匹配 |
| 373 | Hungarian 算法 | 加权分配 |
| 374 | Kuhn–Munkres | 最大权重匹配 |
| 375 | Blossom 算法 | 一般图匹配 |
| 376 | Edmonds 花收缩 | 奇环收缩 |
| 377 | 贪心匹配 | 快速近似 |
| 378 | 稳定婚姻 (Gale–Shapley) | 稳定配对 |
| 379 | 加权 b-匹配 | 容量约束 |
| 380 | 极大匹配 | 局部贪心极大集 |
39. 树算法 (LCA, HLD, 重心分解)
| # | 算法 | 备注 |
|---|---|---|
| 381 | 欧拉序 LCA | 将树展平为数组 |
| 382 | 倍增 LCA | 跳转 2 的幂次 |
| 383 | Tarjan LCA (离线 DSU) | 通过并查集处理查询 |
| 384 | 轻重链剖分 | 分解路径 |
| 385 | 重心分解 | 在重心上递归分割 |
| 386 | 树直径 (两次 DFS) | 最远点对 |
| 387 | 树形 DP | 基于子树的优化 |
| 388 | 换根 DP | 计算所有根节点的答案 |
| 389 | 树上二分搜索 | 边权重约束 |
| 390 | 虚树 | 在查询子集上构建 |
40. 高级图算法与技巧
| # | 算法 | 备注 |
|---|---|---|
| 391 | 拓扑 DP | 在有向无环图顺序上进行 DP |
| 392 | SCC 缩点图 DP | 元图处理 |
| 393 | 欧拉路径 | 覆盖所有边的迹 |
| 394 | 哈密顿路径 | NP 完全问题探索 |
| 395 | 中国邮递员问题 | 可重复边的欧拉回路 |
| 396 | Hierholzer 算法 | 构造欧拉回路 |
| 397 | Johnson 环查找 | 枚举所有环 |
| 398 | 传递闭包 (Floyd–Warshall) | 可达性矩阵 |
| 399 | 图着色 (回溯) | 约束满足 |
| 400 | 割点与桥 | 关键结构检测 |
第5章 动态规划
41. DP基础与状态转移
| # | 算法 | 备注 |
|---|---|---|
| 401 | 斐波那契DP | 经典的自顶向下 vs 自底向上 |
| 402 | 爬楼梯 | 计算小步数路径 |
| 403 | 网格路径 | 二维网格上的DP |
| 404 | 最小成本路径 | 累加最小和 |
| 405 | 零钱兑换(计算方式) | 组合求和 |
| 406 | 零钱兑换(最小硬币数) | 最小化步数 |
| 407 | 0/1背包问题 | 在重量限制下选择物品 |
| 408 | 完全背包问题 | 物品可重复 |
| 409 | 最长递增子序列(DP) | 子序列优化 |
| 410 | 编辑距离(Levenshtein) | 逐步度量相似性 |
42. 经典问题(背包、子集和、零钱兑换)
| # | 算法 | 备注 |
|---|---|---|
| 411 | 0/1背包问题 | 容量限制下的价值最大化 |
| 412 | 子集和问题 | 布尔可行性DP |
| 413 | 等和子集划分 | 将集合划分为相等的两半 |
| 414 | 和为特定值的子集计数 | 计数变体 |
| 415 | 目标和 | 带+/-转移的DP |
| 416 | 完全背包问题 | 物品可重复使用 |
| 417 | 分数背包问题 | 贪心+DP比较 |
| 418 | 零钱兑换(最小硬币数) | DP最短路径 |
| 419 | 零钱兑换(计算方式) | 组合计数 |
| 420 | 多维背包问题 | 多维容量限制 |
43. 序列问题(LIS、LCS、编辑距离)
| # | 算法 | 备注 |
|---|---|---|
| 421 | 最长递增子序列 | O(n²) DP |
| 422 | LIS(耐心排序) | O(n log n) 优化 |
| 423 | 最长公共子序列 | 双序列DP |
| 424 | 编辑距离(Levenshtein) | 转换操作 |
| 425 | 最长回文子序列 | 对称DP |
| 426 | 最短公共超序列 | 合并序列 |
| 427 | 最长重复子序列 | 带重叠的DP |
| 428 | 字符串交错 | 保持顺序的合并 |
| 429 | 序列比对(生物信息学) | 空位罚分 |
| 430 | Diff算法(Myers/DP) | 最小编辑路径 |
44. 矩阵与链式问题
| # | 算法 | 备注 |
|---|---|---|
| 431 | 矩阵链乘法 | 括号化成本 |
| 432 | 布尔括号化 | 计算结果为真的方式数 |
| 433 | 戳气球 | 区间DP |
| 434 | 最优二叉搜索树 | 加权搜索成本 |
| 435 | 多边形三角剖分 | 基于划分的DP |
| 436 | 矩阵路径和 | 二维网格上的DP |
| 437 | 最大正方形子矩阵 | 动态增长检查 |
| 438 | 二进制矩阵中的最大矩形 | 直方图 + DP |
| 439 | 子矩阵和查询 | 前缀和DP |
| 440 | 回文分割 | 带分割的DP |
45. 状态压缩DP与旅行商问题
| # | 算法 | 备注 |
|---|---|---|
| 441 | 旅行商问题(TSP) | 访问所有城市 |
| 442 | 子集DP | 遍历状态子集 |
| 443 | 哈密顿路径DP | 状态压缩 |
| 444 | 分配问题DP | 任务掩码 |
| 445 | 划分成两个集合 | 平衡负载 |
| 446 | 哈密顿回路计数 | 位掩码枚举 |
| 447 | 斯坦纳树DP | 连接终端节点的最小连接 |
| 448 | SOS DP(子集和DP) | 预计算和 |
| 449 | 位掩码背包 | 状态压缩 |
| 450 | 位掩码独立集 | 图子集优化 |
46. 数位DP与SOS DP
| # | 算法 | 备注 |
|---|---|---|
| 451 | 统计具有特定属性的数字 | 数位状态转移 |
| 452 | 统计无相邻重复数字的数 | 相邻约束 |
| 453 | 区间内数字各位之和 | 依赖进位的状态 |
| 454 | 统计满足模条件的数 | 基于数位和模M的DP |
| 455 | 统计递增数字 | 有序约束 |
| 456 | 统计不含禁用数字的数 | 排除转移 |
| 457 | SOS DP子集和 | 位掩码子集的和 |
| 458 | SOS DP超集和 | 位掩码超集的和 |
| 459 | 异或基DP | 结合数位和位DP |
| 460 | 回文数位DP | 对称数位状态 |
47. DP优化(分治、凸包技巧、Knuth优化)
| # | 算法 | 备注 |
|---|---|---|
| 461 | 分治DP | 单调决策性质 |
| 462 | Knuth优化 | 满足四边形不等式的DP |
| 463 | 凸包技巧 | 线性递推最小值查询 |
| 464 | 李超线段树 | 基于线段维护的凸包 |
| 465 | 斜率技巧 | 分段线性优化 |
| 466 | 单调队列优化 | 滑动DP状态 |
| 467 | 位集DP | 利用位并行加速 |
| 468 | 离线DP查询 | 预处理状态 |
| 469 | DP + 线段树 | 基于区间的优化 |
| 470 | 分治背包 | 分割空间的DP |
48. 树形DP与换根DP
| # | 算法 | 备注 |
|---|---|---|
| 471 | 子树和DP | 聚合值 |
| 472 | 直径DP | 通过子状态计算最大路径 |
| 473 | 独立集DP | 选择或跳过节点 |
| 474 | 顶点覆盖DP | 树约束问题 |
| 475 | 路径计数DP | 计算根到叶的路径数 |
| 476 | 有根树上的DP | 自底向上聚合 |
| 477 | 换根技巧 | 为所有根计算 |
| 478 | 距离和换根 | 高效重新计算 |
| 479 | 树染色DP | 组合计数 |
| 480 | 树形DP上的二分搜索 | 单调转移 |
49. DP重构与回溯
| # | 算法 | 备注 |
|---|---|---|
| 481 | 重构LCS | 回溯表格 |
| 482 | 重构LIS | 追踪前驱 |
| 483 | 重构背包 | 恢复选择的物品 |
| 484 | 编辑距离对齐 | 追踪插入/删除/替换操作 |
| 485 | 矩阵链括号化重构 | 重建括号化方案 |
| 486 | 零钱兑换重构 | 回溯最后使用的硬币 |
| 487 | 路径重构DP | 追踪最小路径 |
| 488 | 序列重构 | 从状态重建 |
| 489 | 多选择重构 | 组合最佳子路径 |
| 490 | 回溯可视化 | 可视化DP回溯工具 |
50. 元DP与优化模板
| # | 算法 | 备注 |
|---|---|---|
| 491 | 状态压缩模板 | 紧凑表示子集 |
| 492 | 转移优化模板 | 预计算转移 |
| 493 | 空间优化模板 | 滚动数组 |
| 494 | 多维DP模板 | 嵌套循环版本 |
| 495 | 决策单调性 | 优化提示 |
| 496 | Monge数组优化 | 利用矩阵性质 |
| 497 | 分治模板 | 对半递归 |
| 498 | 换根模板 | 通用树形DP |
| 499 | 迭代DP模式 | 自底向上展开 |
| 500 | 记忆化模板 | 递归缓存框架 |
第六章 算法中的数学
51. 数论(最大公约数,模运算,中国剩余定理)
| # | 算法 | 说明 |
|---|---|---|
| 501 | 欧几里得算法 | 计算 gcd(a, b) |
| 502 | 扩展欧几里得算法 | 求解 ax + by = gcd(a, b) |
| 503 | 模加法 | 在模 M 下进行加法 |
| 504 | 模乘法 | 在模 M 下进行乘法 |
| 505 | 模幂运算 | 快速幂取模 M |
| 506 | 模逆元 | 计算 a⁻¹ mod M |
| 507 | 中国剩余定理 | 合并模方程组 |
| 508 | 二进制 GCD(Stein 算法) | 基于位运算的 gcd |
| 509 | 模约化 | 标准化余数 |
| 510 | 模线性方程求解器 | 求解 ax ≡ b (mod m) |
52. 素性与因式分解(Miller–Rabin,Pollard Rho)
| # | 算法 | 说明 |
|---|---|---|
| 511 | 试除法 | 简单的素数测试 |
| 512 | 埃拉托斯特尼筛法 | 生成直到 n 的素数 |
| 513 | Atkin 筛法 | 更快的筛法变体 |
| 514 | Miller–Rabin 素性测试 | 概率性素性测试 |
| 515 | 费马素性测试 | 模幂检查 |
| 516 | Pollard’s Rho 算法 | 随机化因式分解 |
| 517 | Pollard’s p−1 方法 | 利用光滑性进行因式分解 |
| 518 | 轮式因式分解 | 跳过已知的合数 |
| 519 | AKS 素性测试 | 确定性的多项式时间测试 |
| 520 | 分段筛法 | 为大范围 n 生成素数 |
53. 组合数学(排列,组合,子集)
| # | 算法 | 说明 |
|---|---|---|
| 521 | 阶乘预计算 | 构建 n! 表 |
| 522 | nCr 计算 | 使用帕斯卡三角形或阶乘 |
| 523 | 帕斯卡三角形 | 二项式系数 |
| 524 | 多重集组合 | 允许重复 |
| 525 | 排列生成 | 字典序 |
| 526 | 下一个排列 | STL 风格的递增 |
| 527 | 子集生成 | 位掩码或递归 |
| 528 | 格雷码生成 | 单比特翻转 |
| 529 | 卡特兰数动态规划 | 计算有效的括号序列数 |
| 530 | 斯特林数 | 划分计数 |
54. 概率与随机化算法
| # | 算法 | 说明 |
|---|---|---|
| 531 | 蒙特卡洛模拟 | 通过随机性近似求解 |
| 532 | 拉斯维加斯算法 | 总是正确,时间可变 |
| 533 | 蓄水池抽样 | 从流中均匀采样 |
| 534 | 随机化快速排序 | 期望 O(n log n) |
| 535 | 随机化快速选择 | 随机枢轴 |
| 536 | 生日悖论模拟 | 碰撞概率 |
| 537 | 随机哈希 | 减少碰撞机会 |
| 538 | 随机游走模拟 | 状态转移 |
| 539 | 优惠券收集问题估计 | 期望试验次数 |
| 540 | 马尔可夫链模拟 | 转移矩阵采样 |
55. 筛法与模运算
| # | 算法 | 说明 |
|---|---|---|
| 541 | 埃拉托斯特尼筛法 | 基础素数筛 |
| 542 | 线性筛法 | O(n) 筛法变体 |
| 543 | 分段筛法 | 区间素数生成 |
| 544 | 最小质因数表 | 通过筛法进行因式分解 |
| 545 | 莫比乌斯函数筛法 | 计算积性函数 |
| 546 | 欧拉函数筛法 | 计算所有 n 的 φ(n) |
| 547 | 约数个数筛法 | 高效计算约数个数 |
| 548 | 模运算预计算 | 存储逆元、阶乘等 |
| 549 | 费马小定理 | a^(p−1) ≡ 1 mod p |
| 550 | 威尔逊定理 | 通过阶乘模 p 进行素数测试 |
56. 线性代数(高斯消元,LU,SVD)
| # | 算法 | 说明 |
|---|---|---|
| 551 | 高斯消元法 | 求解 Ax = b |
| 552 | 高斯-若尔当消元法 | 化为行最简阶梯形 |
| 553 | LU 分解 | 将 A 分解为 L·U |
| 554 | Cholesky 分解 | 对称正定矩阵的 A = L·Lᵀ 分解 |
| 555 | QR 分解 | 正交分解 |
| 556 | 矩阵求逆(高斯-若尔当) | 求 A⁻¹ |
| 557 | 消元法求行列式 | 主元的乘积 |
| 558 | 矩阵的秩 | 非零行计数 |
| 559 | 幂法求特征值 | 近似主特征值 |
| 560 | 奇异值分解 | A = UΣVᵀ |
57. FFT 与 NTT(快速变换)
| # | 算法 | 说明 |
|---|---|---|
| 561 | 离散傅里叶变换 | O(n²) 基础算法 |
| 562 | 快速傅里叶变换 | O(n log n) 卷积 |
| 563 | Cooley–Tukey FFT 算法 | 递归分治 |
| 564 | 迭代 FFT | 原地位反转 |
| 565 | 逆 FFT | 恢复时域信号 |
| 566 | 基于 FFT 的卷积 | 多项式乘法 |
| 567 | 数论变换 | 模素数的 FFT |
| 568 | 逆 NTT | 模逆变换 |
| 569 | Bluestein 算法 | 任意大小的 FFT |
| 570 | 基于 FFT 的大整数乘法 | 大整数乘积 |
58. 数值方法(牛顿,辛普森,龙格-库塔)
| # | 算法 | 说明 |
|---|---|---|
| 571 | 牛顿-拉夫森法 | 利用切线求根 |
| 572 | 二分法 | 区间折半 |
| 573 | 割线法 | 近似导数 |
| 574 | 不动点迭代法 | x = f(x) 收敛 |
| 575 | 高斯求积法 | 加权积分 |
| 576 | 辛普森法则 | 分段二次函数积分 |
| 577 | 梯形法则 | 线性插值积分 |
| 578 | 龙格-库塔法 | 常微分方程求解器 |
| 579 | 欧拉法 | 逐步求解常微分方程 |
| 580 | 梯度下降法 | 数值优化 |
59. 数学优化(单纯形,梯度,凸优化)
| # | 算法 | 说明 |
|---|---|---|
| 581 | 单纯形法 | 线性规划求解器 |
| 582 | 对偶单纯形法 | 求解对偶约束 |
| 583 | 内点法 | 凸优化 |
| 584 | 梯度下降法 | 无约束优化 |
| 585 | 随机梯度下降法 | 基于样本的更新 |
| 586 | 牛顿法 | 二次收敛 |
| 587 | 共轭梯度法 | 求解对称正定系统 |
| 588 | 拉格朗日乘数法 | 约束优化 |
| 589 | KKT 条件求解器 | 凸约束处理 |
| 590 | 坐标下降法 | 顺序变量更新 |
60. 代数技巧与变换技术
| # | 算法 | 说明 |
|---|---|---|
| 591 | 多项式乘法 | 快速卷积 |
| 592 | 多项式求逆 | 牛顿迭代 |
| 593 | 多项式求导 | 逐项乘以指数 |
| 594 | 多项式积分 | 除以指数+1 |
| 595 | 形式幂级数复合 | 级数代入 |
| 596 | 平方取幂法 | 快速幂运算 |
| 597 | 模幂运算 | 快速幂取模 M |
| 598 | 快速沃尔什-哈达玛变换 | XOR 卷积 |
| 599 | Zeta 变换 | 子集求和 |
| 600 | 莫比乌斯反演 | 从和恢复原函数 |
第 7 章 字符串与文本算法
61. 字符串匹配 (KMP, Z, Rabin–Karp, Boyer–Moore)
| # | 算法 | 备注 |
|---|---|---|
| 601 | 朴素字符串匹配 | 比较每个位置 |
| 602 | Knuth–Morris–Pratt (KMP) | 利用前缀函数跳过 |
| 603 | Z 算法 | 使用 Z 值进行匹配 |
| 604 | Rabin–Karp | 滚动哈希比较 |
| 605 | Boyer–Moore | 基于失配的后向跳跃 |
| 606 | Boyer–Moore–Horspool | 简化的移位表 |
| 607 | Sunday 算法 | 末字符移位 |
| 608 | 有限自动机匹配 | 基于 DFA 的匹配 |
| 609 | Bitap 算法 | 位掩码近似匹配 |
| 610 | Two-Way 算法 | 最优线性匹配 |
62. 多模式搜索 (Aho–Corasick)
| # | 算法 | 备注 |
|---|---|---|
| 611 | Aho–Corasick 自动机 | 字典树 + 失败链接 |
| 612 | 字典树构建 | 前缀树构建 |
| 613 | 失败链接计算 | 使用 BFS 计算转移 |
| 614 | 输出链接管理 | 处理重叠模式 |
| 615 | 多模式搜索 | 查找所有关键词 |
| 616 | 字典匹配 | 查找多个子串 |
| 617 | 动态 Aho–Corasick | 添加/删除模式 |
| 618 | 并行 AC 搜索 | 多线程遍历 |
| 619 | 压缩 AC 自动机 | 内存优化 |
| 620 | 支持通配符的扩展 AC | 灵活匹配 |
63. 后缀结构 (后缀数组,后缀树,LCP)
| # | 算法 | 备注 |
|---|---|---|
| 621 | 后缀数组 (朴素) | 排序所有后缀 |
| 622 | 后缀数组 (倍增法) | 基于排名的 O(n log n) 算法 |
| 623 | Kasai 的 LCP 算法 | 最长公共前缀 |
| 624 | 后缀树 (Ukkonen) | 线性时间在线构建 |
| 625 | 后缀自动机 | 子串的最小 DFA |
| 626 | SA-IS 算法 | O(n) 后缀数组构建 |
| 627 | LCP RMQ 查询 | 子串的区间最小值查询 |
| 628 | 广义后缀数组 | 多字符串 |
| 629 | 增强后缀数组 | 结合 SA + LCP |
| 630 | 稀疏后缀树 | 空间高效变体 |
64. 回文与周期性 (Manacher)
| # | 算法 | 备注 |
|---|---|---|
| 631 | 朴素回文检查 | 中心扩展 |
| 632 | Manacher 算法 | O(n) 最长回文子串 |
| 633 | 最长回文子串 | 中心扩展 |
| 634 | 回文 DP 表 | 子串布尔矩阵 |
| 635 | 回文树 (Eertree) | 跟踪不同的回文串 |
| 636 | 前缀函数周期性 | 检测重复模式 |
| 637 | Z 函数周期性 | 识别周期性后缀 |
| 638 | KMP 前缀周期检查 | 最短重复单元 |
| 639 | Lyndon 分解 | 将字符串分解为 Lyndon 词 |
| 640 | 最小旋转 (Booth 算法) | 字典序最小移位 |
65. 编辑距离与序列比对
| # | 算法 | 备注 |
|---|---|---|
| 641 | Levenshtein 距离 | 插入/删除/替换成本 |
| 642 | Damerau–Levenshtein 距离 | 包含交换操作 |
| 643 | 汉明距离 | 计算不同的位数 |
| 644 | Needleman–Wunsch | 全局比对 |
| 645 | Smith–Waterman | 局部比对 |
| 646 | Hirschberg 算法 | 内存优化的比对算法 |
| 647 | 编辑脚本重建 | 回溯操作 |
| 648 | 仿射空位罚分 DP | 可变空位成本 |
| 649 | Myers 位向量算法 | 快速编辑距离计算 |
| 650 | 最长公共子序列 | 基于包含关系的比对 |
66. 压缩 (Huffman, Arithmetic, LZ77, BWT)
| # | 算法 | 备注 |
|---|---|---|
| 651 | Huffman 编码 | 最优前缀树 |
| 652 | 规范 Huffman 编码 | 确定性排序 |
| 653 | 算术编码 | 区间概率编码 |
| 654 | Shannon–Fano 编码 | 早期前缀方法 |
| 655 | 游程编码 (RLE) | 重复压缩 |
| 656 | LZ77 | 滑动窗口匹配 |
| 657 | LZ78 | 字典构建 |
| 658 | LZW | GIF 中使用的变体 |
| 659 | Burrows–Wheeler 变换 | 块重排序 |
| 660 | 移动至前端编码 | 提升局部性的变换 |
67. 密码学哈希与校验和
| # | 算法 | 备注 |
|---|---|---|
| 661 | 滚动哈希 | 基于多项式取模 |
| 662 | CRC32 | 循环冗余校验 |
| 663 | Adler-32 | 轻量级校验和 |
| 664 | MD5 | 遗留的密码学哈希函数 |
| 665 | SHA-1 | 已弃用的哈希函数 |
| 666 | SHA-256 | 安全哈希标准 |
| 667 | SHA-3 (Keccak) | 海绵结构 |
| 668 | HMAC | 带密钥的消息认证码 |
| 669 | Merkle 树 | 分层哈希 |
| 670 | 哈希碰撞检测 | 生日边界模拟 |
68. 近似与流式匹配
| # | 算法 | 备注 |
|---|---|---|
| 671 | K-近似匹配 | 允许 k 个失配 |
| 672 | Bitap 算法 | 位动态规划 |
| 673 | Landau–Vishkin 算法 | 编辑距离 ≤ k |
| 674 | 过滤算法 | 快速近似搜索 |
| 675 | Wu–Manber | 多模式近似搜索 |
| 676 | 流式 KMP | 在线前缀更新 |
| 677 | 滚动哈希草图 | 滑动窗口哈希 |
| 678 | 基于草图的相似性 | MinHash / LSH 变体 |
| 679 | 加权编辑距离 | 加权操作 |
| 680 | 在线 Levenshtein 距离 | 动态流更新 |
69. 生物信息学比对 (Needleman–Wunsch, Smith–Waterman)
| # | 算法 | 备注 |
|---|---|---|
| 681 | Needleman–Wunsch | 全局序列比对 |
| 682 | Smith–Waterman | 局部比对 |
| 683 | Gotoh 算法 | 仿射空位罚分 |
| 684 | Hirschberg 比对 | 线性空间比对 |
| 685 | 多序列比对 (MSA) | 渐进式方法 |
| 686 | 谱比对 | 序列与谱的比对 |
| 687 | 隐马尔可夫模型比对 | 概率比对 |
| 688 | BLAST | 启发式局部搜索 |
| 689 | FASTA | 基于词的比对 |
| 690 | 成对 DP 比对 | 通用 DP 框架 |
70. 文本索引与搜索结构
| # | 算法 | 备注 |
|---|---|---|
| 691 | 倒排索引构建 | 词到文档的映射 |
| 692 | 位置索引 | 存储词的位置 |
| 693 | TF-IDF 加权 | 重要性评分 |
| 694 | BM25 排序 | 现代排序公式 |
| 695 | 字典树索引 | 前缀搜索结构 |
| 696 | 后缀数组索引 | 子串搜索 |
| 697 | 压缩后缀数组 | 空间优化 |
| 698 | FM-索引 | 基于 BWT 的压缩索引 |
| 699 | DAWG (有向无环词图) | 共享后缀图 |
| 700 | 文本的小波树 | 序列上的秩/选择操作 |
第八章 几何、图形与空间算法
71. 凸包(Graham, Andrew, Chan)
| 编号 | 算法 | 备注 |
|---|---|---|
| 701 | 礼品包装法(Jarvis March) | 每次包裹一个点来构建凸包 |
| 702 | Graham 扫描法 | 按角度排序,维护栈 |
| 703 | Andrew 单调链法 | 按 x 坐标排序,构建上、下凸包 |
| 704 | Chan 算法 | 输出敏感的 O(n log h) 算法 |
| 705 | QuickHull | 分治凸包算法 |
| 706 | 增量凸包算法 | 逐个添加点 |
| 707 | 分治凸包算法 | 合并两个部分凸包 |
| 708 | 三维凸包 | 扩展到三维几何 |
| 709 | 动态凸包 | 支持插入操作以维护凸包 |
| 710 | 旋转卡壳法 | 计算直径、宽度、对踵点对 |
72. 最近点对与线段相交
| 编号 | 算法 | 备注 |
|---|---|---|
| 711 | 最近点对(分治法) | 分割、合并最小距离 |
| 712 | 最近点对(扫描线法) | 维护活动窗口 |
| 713 | 最近点对(暴力法) | 检查所有 O(n²) 对点 |
| 714 | Bentley–Ottmann 算法 | 查找所有线段交点 |
| 715 | 线段相交测试 | 叉积方向判断 |
| 716 | 线段扫描线法 | 基于事件的相交检测 |
| 717 | 基于方向的相交判断 | 逆时针测试 |
| 718 | 圆相交 | 两圆的几何关系 |
| 719 | 多边形相交 | 裁剪重叠多边形 |
| 720 | 最近邻点对 | 结合 KD 树与搜索 |
73. 扫描线算法与平面扫描算法
| 编号 | 算法 | 备注 |
|---|---|---|
| 721 | 事件扫描线法 | 处理排序后的事件 |
| 722 | 区间调度 | 选择不重叠的区间 |
| 723 | 矩形并集面积 | 扫描边以计算面积 |
| 724 | 线段相交(Bentley–Ottmann) | 检测所有交叉点 |
| 725 | 天际线问题 | 合并高度轮廓 |
| 726 | 最近点对扫描法 | 维护活动集 |
| 727 | 圆排列 | 扫描并计数区域 |
| 728 | 重叠矩形扫描检测 | 检测碰撞 |
| 729 | 范围计数 | 统计矩形内点数 |
| 730 | 三角形平面扫描法 | 多边形叠加计算 |
74. Delaunay 三角剖分与 Voronoi 图
| 编号 | 算法 | 备注 |
|---|---|---|
| 731 | Delaunay 三角剖分(增量法) | 添加点,维护 Delaunay 性质 |
| 732 | Delaunay(分治法) | 合并三角剖分 |
| 733 | Delaunay(Fortune 扫描法) | O(n log n) 构造算法 |
| 734 | Voronoi 图(Fortune 算法) | 扫描线与海滩线 |
| 735 | 增量 Voronoi 图 | 插入时更新 |
| 736 | Bowyer–Watson 算法 | 空圆准则 |
| 737 | 对偶变换 | Voronoi 图与 Delaunay 三角剖分转换 |
| 738 | 加权 Voronoi 图(Power Diagram) | 带权重的 Voronoi 图 |
| 739 | Lloyd 松弛算法 | 平滑 Voronoi 单元 |
| 740 | Voronoi 最近邻查询 | 基于区域的查找 |
75. 点是否在多边形内与多边形三角剖分
| 编号 | 算法 | 备注 |
|---|---|---|
| 741 | 射线投射法 | 计算边交叉次数 |
| 742 | 环绕数法 | 角度求和法 |
| 743 | 凸多边形点测试 | 方向检查 |
| 744 | 耳切法三角剖分 | 迭代移除"耳朵" |
| 745 | 单调多边形三角剖分 | 扫描线三角剖分 |
| 746 | Delaunay 三角剖分 | 最优三角形质量 |
| 747 | 凸分解 | 分割为凸部分 |
| 748 | 多边形面积(鞋带公式) | 有符号面积计算 |
| 749 | 闵可夫斯基和 | 几何形状相加 |
| 750 | 多边形相交(Weiler–Atherton) | 裁剪重叠形状 |
76. 空间数据结构(KD 树,R 树)
| 编号 | 算法 | 备注 |
|---|---|---|
| 751 | KD 树构建 | 递归中位数分割 |
| 752 | KD 树搜索 | 轴对齐查询 |
| 753 | KD 树范围搜索 | 正交查询 |
| 754 | KD 树最近邻搜索 | 最近点搜索 |
| 755 | R 树构建 | 包围盒层次结构 |
| 756 | R* 树 | 优化的分割策略 |
| 757 | 四叉树 | 空间分解 |
| 758 | 八叉树 | 三维空间分解 |
| 759 | BSP 树(二叉空间分割) | 平面分割 |
| 760 | Morton 顺序(Z 曲线) | 空间局部性索引 |
77. 光栅化与扫描线技术
| 编号 | 算法 | 备注 |
|---|---|---|
| 761 | Bresenham 直线算法 | 高效的整数绘制 |
| 762 | 中点圆算法 | 圆的光栅化 |
| 763 | 扫描线填充 | 多边形内部填充 |
| 764 | 边表填充 | 按 y 坐标排序边 |
| 765 | Z 缓冲算法 | 隐藏面消除 |
| 766 | 画家算法 | 按深度排序 |
| 767 | Gouraud 着色 | 顶点插值着色 |
| 768 | Phong 着色 | 法线插值 |
| 769 | 抗锯齿(超采样) | 平滑锯齿边缘 |
| 770 | 扫描线多边形裁剪 | 高效裁剪 |
78. 计算机视觉(Canny, Hough, SIFT)
| 编号 | 算法 | 备注 |
|---|---|---|
| 771 | Canny 边缘检测器 | 梯度 + 滞后阈值 |
| 772 | Sobel 算子 | 梯度幅度滤波器 |
| 773 | Hough 变换(直线) | 用于直线检测的累加器 |
| 774 | Hough 变换(圆) | 基于半径的累加器 |
| 775 | Harris 角点检测器 | 基于特征值的角点检测 |
| 776 | FAST 角点检测器 | 强度圆测试 |
| 777 | SIFT(尺度不变特征变换) | 关键点检测 |
| 778 | SURF(加速鲁棒特征) | 更快的描述子 |
| 779 | ORB(定向 FAST + BRIEF) | 二进制鲁棒特征 |
| 780 | RANSAC | 鲁棒模型拟合 |
79. 空间路径规划(A*, RRT, PRM)
| 编号 | 算法 | 备注 |
|---|---|---|
| 781 | A* 搜索 | 启发式路径规划 |
| 782 | 网格上的 Dijkstra 算法 | 加权最短路径 |
| 783 | Theta* 算法 | 任意角度路径规划 |
| 784 | 跳点搜索 | 网格加速算法 |
| 785 | RRT(快速探索随机树) | 随机采样树 |
| 786 | RRT* | 带重连的优化变体 |
| 787 | PRM(概率路线图) | 图采样规划器 |
| 788 | 可见性图 | 连接可见顶点 |
| 789 | 势场路径规划 | 基于梯度的导航 |
| 790 | Bug 算法 | 简单的避障算法 |
80. 计算几何变体与应用
| 编号 | 算法 | 备注 |
|---|---|---|
| 791 | 凸多边形相交 | 裁剪凸集 |
| 792 | 闵可夫斯基和 | 形状卷积 |
| 793 | 旋转卡壳法 | 最近/最远点对 |
| 794 | 半平面交 | 可行区域 |
| 795 | 直线排列 | 计数区域 |
| 796 | 点定位(梯形图) | 查询区域查找 |
| 797 | Voronoi 最近设施查询 | 区域查询 |
| 798 | Delaunay 网格生成 | 三角剖分细化 |
| 799 | 最小包围圆 | Welzl 算法 |
| 800 | 碰撞检测(SAT) | 分离轴定理 |
第9章 系统、数据库与分布式算法
81. 并发控制(2PL、MVCC、OCC)
| # | 算法 | 备注 |
|---|---|---|
| 801 | 两阶段锁(2PL) | 先获取锁,后释放锁 |
| 802 | 严格两阶段锁 | 持有锁直到提交 |
| 803 | 保守两阶段锁 | 通过预锁防止死锁 |
| 804 | 时间戳排序 | 按时间戳调度 |
| 805 | 多版本并发控制(MVCC) | 快照隔离 |
| 806 | 乐观并发控制(OCC) | 提交时验证 |
| 807 | 可序列化快照隔离 | 合并读/写集合 |
| 808 | 无锁算法 | 原子 CAS 更新 |
| 809 | 等待-死亡 / 伤害-等待 | 死锁预防策略 |
| 810 | 死锁检测(等待图) | 在等待关系中检测循环 |
82. 日志、恢复与提交协议
| # | 算法 | 备注 |
|---|---|---|
| 811 | 预写日志(WAL) | 提交前写日志 |
| 812 | ARIES 恢复算法 | 使用 LSN 进行重做/撤销 |
| 813 | 影子分页 | 写时复制持久化 |
| 814 | 两阶段提交(2PC) | 协调者驱动的提交 |
| 815 | 三阶段提交(3PC) | 非阻塞变体 |
| 816 | 检查点 | 保存状态以便恢复 |
| 817 | 撤销日志 | 回滚未提交的事务 |
| 818 | 重做日志 | 重新应用已提交的事务 |
| 819 | 法定人数提交 | 多数同意规则 |
| 820 | 共识提交 | 结合 2PC 与 Paxos |
83. 调度(轮询、最早截止时间优先、单调速率)
| # | 算法 | 备注 |
|---|---|---|
| 821 | 先来先服务(FCFS) | 按作业到达顺序 |
| 822 | 最短作业优先(SJF) | 最优平均等待时间 |
| 823 | 轮询调度(RR) | 时间片公平性 |
| 824 | 优先级调度 | 加权选择 |
| 825 | 多级队列 | 分层优先级队列 |
| 826 | 最早截止时间优先(EDF) | 实时系统最优 |
| 827 | 单调速率调度(RMS) | 固定周期优先级 |
| 828 | 彩票调度 | 概率公平性 |
| 829 | 多级反馈队列 | 自适应行为 |
| 830 | 公平队列(FQ) | 基于流的按比例共享 |
84. 缓存与替换策略(LRU、LFU、CLOCK)
| # | 算法 | 备注 |
|---|---|---|
| 831 | 最近最少使用(LRU) | 驱逐最久未使用的 |
| 832 | 最不经常使用(LFU) | 驱逐使用频率最低的 |
| 833 | 先进先出缓存 | 简单的队列驱逐策略 |
| 834 | CLOCK 算法 | 近似 LRU |
| 835 | 自适应替换缓存(ARC) | 结合最近性与频率 |
| 836 | 双队列(2Q) | 分离最近访问与频繁访问 |
| 837 | 低互引用最近性集合(LIRS) | 预测重用距离 |
| 838 | TinyLFU | 基于频率草图准入 |
| 839 | 随机替换 | 简单的随机策略 |
| 840 | Belady 最优算法 | 驱逐未来最远使用的 |
85. 网络(路由、拥塞控制)
| # | 算法 | 备注 |
|---|---|---|
| 841 | Dijkstra 路由算法 | 最短路径路由 |
| 842 | Bellman–Ford 路由算法 | 距离向量路由 |
| 843 | 链路状态路由(OSPF) | 全局视图路由 |
| 844 | 距离向量路由(RIP) | 本地邻居更新 |
| 845 | 路径向量(BGP) | 路由通告 |
| 846 | 泛洪 | 广播到所有节点 |
| 847 | 生成树协议 | 无环拓扑 |
| 848 | 拥塞控制(AIMD) | TCP 窗口控制 |
| 849 | 随机早期检测(RED) | 队列抢占式丢包 |
| 850 | 显式拥塞通知(ECN) | 早期标记数据包 |
86. 分布式共识(Paxos、Raft、PBFT)
| # | 算法 | 备注 |
|---|---|---|
| 851 | 基础 Paxos | 多数共识 |
| 852 | 多 Paxos | 一系列协议 |
| 853 | Raft | 日志复制 + 领导者选举 |
| 854 | 视图戳记复制 | 替代的共识设计 |
| 855 | 实用拜占庭容错(PBFT) | 拜占庭安全性 |
| 856 | Zab(Zookeeper 原子广播) | 广播 + 排序 |
| 857 | EPaxos | 无领导者快速路径 |
| 858 | 虚拟环复制(VRR) | 日志沿环传递 |
| 859 | 基于共识的两阶段提交 | 事务提交 |
| 860 | 链式复制 | 有序状态复制 |
87. 负载均衡与速率限制
| # | 算法 | 备注 |
|---|---|---|
| 861 | 轮询负载均衡 | 顺序分配 |
| 862 | 加权轮询 | 按权重比例分配 |
| 863 | 最少连接数 | 选择负载最轻的节点 |
| 864 | 一致性哈希 | 稳定映射请求 |
| 865 | 二选一策略 | 采样并选择负载较轻的 |
| 866 | 随机负载均衡 | 简单的均匀随机分配 |
| 867 | 令牌桶 | 基于速率的限制器 |
| 868 | 漏桶 | 稳态流量整形 |
| 869 | 滑动窗口计数器 | 滚动时间窗口 |
| 870 | 固定窗口计数器 | 可重置的计数器限制器 |
88. 搜索与索引(倒排索引、BM25、WAND)
| # | 算法 | 备注 |
|---|---|---|
| 871 | 倒排索引构建 | 词项 → 文档列表 |
| 872 | 位置索引构建 | 存储词项位置 |
| 873 | TF-IDF 评分 | 词频加权 |
| 874 | BM25 排序 | 现代评分模型 |
| 875 | 布尔检索 | 逻辑与/或/非 |
| 876 | WAND 算法 | 高效 top-k 检索 |
| 877 | 块最大 WAND(BMW) | 早期跳过优化 |
| 878 | 影响排序索引 | 按贡献度排序 |
| 879 | 分层索引 | 优先处理高分文档 |
| 880 | DAAT 与 SAAT 评估 | 逐文档 vs 逐评分 |
89. 系统中的压缩与编码
| # | 算法 | 备注 |
|---|---|---|
| 881 | 游程编码(RLE) | 简单重复编码 |
| 882 | 霍夫曼编码 | 最优变长编码 |
| 883 | 算术编码 | 分数区间编码 |
| 884 | 增量编码 | 存储差值 |
| 885 | 可变字节编码 | 紧凑整数编码 |
| 886 | Elias Gamma 编码 | 前缀整数编码 |
| 887 | Rice 编码 | 一元码 + 余数方案 |
| 888 | Snappy | 快速块压缩 |
| 889 | Zstandard(Zstd) | 现代自适应编解码器 |
| 890 | LZ4 | 高速字典压缩器 |
90. 容错与复制
| # | 算法 | 备注 |
|---|---|---|
| 891 | 主-备份复制 | 一个主节点,一个备用节点 |
| 892 | 法定人数复制 | 多数写/读规则 |
| 893 | 链式复制 | 有序一致性 |
| 894 | 流言协议 | 流行病式状态交换 |
| 895 | 反熵修复 | 定期调和 |
| 896 | 纠删码 | 冗余数据块 |
| 897 | 校验和验证 | 检测数据损坏 |
| 898 | 心跳监控 | 活性检测 |
| 899 | 领导者选举(Bully) | 最高 ID 胜出 |
| 900 | 领导者选举(Ring) | 基于令牌的轮转 |
第 10 章 人工智能、机器学习与优化
91. 经典机器学习 (k-means, 朴素贝叶斯, 支持向量机, 决策树)
| # | 算法 | 备注 |
|---|---|---|
| 901 | k-Means 聚类 | 基于质心迭代进行划分 |
| 902 | k-Medoids (PAM) | 基于范例进行聚类 |
| 903 | 高斯混合模型 (EM) | 软概率聚类 |
| 904 | 朴素贝叶斯分类器 | 基于特征独立的概率分类 |
| 905 | 逻辑回归 | Sigmoid 线性分类器 |
| 906 | 感知机 | 在线线性分类器 |
| 907 | 决策树 (CART) | 基于不纯度递归划分 |
| 908 | ID3 算法 | 基于信息增益进行分裂 |
| 909 | k-最近邻 (kNN) | 基于距离的分类 |
| 910 | 线性判别分析 (LDA) | 用于分离的投影方法 |
92. 集成方法 (Bagging, Boosting, 随机森林)
| # | 算法 | 备注 |
|---|---|---|
| 911 | Bagging | 自助聚合 |
| 912 | 随机森林 | 决策树的集成 |
| 913 | AdaBoost | 加权误差修正 |
| 914 | 梯度提升 | 序列残差拟合 |
| 915 | XGBoost | 优化的梯度提升 |
| 916 | LightGBM | 基于直方图的叶子生长 |
| 917 | CatBoost | 针对分类变量的有序提升 |
| 918 | Stacking | 元模型集成 |
| 919 | 投票分类器 | 多数聚合 |
| 920 | Snapshot Ensemble | 平均检查点 |
93. 梯度方法 (SGD, Adam, RMSProp)
| # | 算法 | 备注 |
|---|---|---|
| 921 | 梯度下降 | 批量全梯度步进 |
| 922 | 随机梯度下降 (SGD) | 基于样本的更新 |
| 923 | 小批量 SGD | 速度与方差的权衡 |
| 924 | 动量法 | 为下降添加速度 |
| 925 | Nesterov 加速梯度 | 前瞻校正 |
| 926 | AdaGrad | 自适应逐参数学习率 |
| 927 | RMSProp | 指数移动平均 |
| 928 | Adam | 动量 + 自适应学习率 |
| 929 | AdamW | 解耦权重衰减 |
| 930 | L-BFGS | 有限内存拟牛顿法 |
94. 深度学习 (反向传播, Dropout, 归一化)
| # | 算法 | 备注 |
|---|---|---|
| 931 | 反向传播 | 梯度链式法则 |
| 932 | Xavier/He 初始化 | 缩放方差初始化 |
| 933 | Dropout | 随机神经元失活 |
| 934 | 批量归一化 | 按批次归一化 |
| 935 | 层归一化 | 按特征归一化 |
| 936 | 梯度裁剪 | 防止梯度爆炸 |
| 937 | 早停法 | 防止过拟合 |
| 938 | 权重衰减 | 通过惩罚项进行正则化 |
| 939 | 学习率调度 | 动态学习率调整 |
| 940 | 残差连接 | 跳跃层改进 |
95. 序列模型 (Viterbi, 束搜索, CTC)
| # | 算法 | 备注 |
|---|---|---|
| 941 | 隐马尔可夫模型 (前向-后向算法) | 概率序列模型 |
| 942 | Viterbi 算法 | 最可能路径 |
| 943 | Baum–Welch 算法 | HMM 的 EM 训练 |
| 944 | 束搜索 | 前 k 路径探索 |
| 945 | 贪婪解码 | 快速近似解码 |
| 946 | 连接时序分类 (CTC) | 未对齐序列训练 |
| 947 | 注意力机制 | 加权上下文聚合 |
| 948 | Transformer 解码器 | 自注意力堆栈 |
| 949 | 带注意力的 Seq2Seq | 编码器-解码器框架 |
| 950 | 指针网络 | 输出索引选择 |
96. 元启发式算法 (GA, SA, PSO, ACO)
| # | 算法 | 备注 |
|---|---|---|
| 951 | 遗传算法 (GA) | 进化优化 |
| 952 | 模拟退火 (SA) | 温度控制搜索 |
| 953 | 禁忌搜索 | 禁止移动的记忆 |
| 954 | 粒子群优化 (PSO) | 基于速度的搜索 |
| 955 | 蚁群优化 (ACO) | 信息素引导路径 |
| 956 | 差分进化 (DE) | 基于向量的变异 |
| 957 | 和声搜索 | 音乐启发的即兴创作 |
| 958 | 萤火虫算法 | 亮度吸引移动 |
| 959 | 蜂群优化 | 通过侦察蜂进行探索-利用 |
| 960 | 爬山法 | 局部增量改进 |
97. 强化学习 (Q-learning, 策略梯度)
| # | 算法 | 备注 |
|---|---|---|
| 961 | 蒙特卡洛控制 | 平均回报 |
| 962 | 时序差分 (TD) 学习 | 自举更新 |
| 963 | SARSA | 同策略 TD 学习 |
| 964 | Q-Learning | 异策略 TD 学习 |
| 965 | 双重 Q-Learning | 减少高估 |
| 966 | 深度 Q 网络 (DQN) | 神经 Q 近似器 |
| 967 | REINFORCE | 基于采样的策略梯度 |
| 968 | 演员-评论家 | 价值引导的策略更新 |
| 969 | PPO (近端策略优化) | 裁剪替代目标 |
| 970 | DDPG / SAC | 连续动作强化学习 |
98. 近似算法与在线算法
| # | 算法 | 备注 |
|---|---|---|
| 971 | 贪婪集合覆盖 | ln(n)-近似 |
| 972 | 顶点覆盖近似 | 双重匹配启发式 |
| 973 | 旅行商问题近似 | 基于 MST 的 2-近似 |
| 974 | k-中心近似 | 最远点启发式 |
| 975 | 在线分页 (LRU) | 竞争分析 |
| 976 | 在线匹配 (Ranking) | 对抗性输入鲁棒性 |
| 977 | 在线背包问题 | 基于比率的接受 |
| 978 | 竞争比评估 | 最坏情况性能界限 |
| 979 | PTAS / FPTAS 方案 | 多项式时间近似方案 |
| 980 | 原始-对偶方法 | 近似组合优化 |
99. 公平性、因果推断与鲁棒优化
| # | 算法 | 备注 |
|---|---|---|
| 981 | 公平性重加权 | 调整样本权重 |
| 982 | 人口统计平等约束 | 均衡正例率 |
| 983 | 均衡几率 | 对齐错误率 |
| 984 | 对抗性去偏 | 学习公平表示 |
| 985 | 因果 DAG 发现 | 图因果推断 |
| 986 | 倾向得分匹配 | 估计处理效应 |
| 987 | 工具变量估计 | 处理混杂因素 |
| 988 | 鲁棒优化 | 考虑最坏情况的优化 |
| 989 | 分布鲁棒优化 | 不确定性集上的极小极大优化 |
| 990 | 反事实公平性 | 模拟 do-干预 |
100. AI 规划、搜索与学习系统
| # | 算法 | 备注 |
|---|---|---|
| 991 | 广度优先搜索 (BFS) | 无信息搜索 |
| 992 | 深度优先搜索 (DFS) | 回溯搜索 |
| 993 | A* 搜索 | 启发式引导 |
| 994 | 迭代加深 A* (IDA*) | 内存受限的启发式搜索 |
| 995 | 统一代价搜索 | 按路径代价扩展 |
| 996 | 蒙特卡洛树搜索 (MCTS) | 探索与利用 |
| 997 | 极小极大算法 | 博弈树评估 |
| 998 | Alpha–Beta 剪枝 | 剪除不需要的分支 |
| 999 | STRIPS 规划 | 基于动作的状态转换 |
| 1000 | 分层任务网络 (HTN) | 结构化 AI 规划 |