算法类型大总结(并附经典题型)
排序算法:
- 冒泡排序
- 插入排序
- 选择排序
- 希尔 Shell 排序
- 快速排序
- 归并排序
- 堆排序
- 线性排序算法
- 自省排序
- 间接排序
- 计数排序
- 基数排序
- 桶排序
- 外部排序 - k 路归并败者树
- 外部排序 - 最佳归并树
递归与分治(Divide and Conquer)
- 二分搜索/查找
- 大整数的乘法?
- Strassen 矩阵乘法
- 棋盘覆盖
- 合并排序
- 快速排序
- 线性时间选择
- 最接近点对问题
- 循环赛日程表
DP:
- 矩阵连乘问题
- 最长公共子序列
- 最大子段和
- 凸多边形最优三角剖分
- 多边形游戏
- 图像压缩
- 电路布线
- 流水作业调度
- 0-1 背包问题/背包九讲
- 最优二叉搜索树
- 动态规划加速原理
- 树型 DP
贪心:
- 活动安排问题
- 最优装载
- 哈夫曼编码
- 单源最短路径(又回到了那个经典问题:Dijkstra到底是贪心还是DP)
- 最小生成树
- 多机调度问题
回溯法:
- 装载问题
- 批处理作业调度
- 符号三角形问题
- n 后问题(就是八皇后问题)
- 0-1 背包问题
- 最大团问题
- 图的 m 着色问题
- 旅行售货员问题(TLP)
- 圆排列问题
- 电路板排列问题
- 连续邮资问题
搜索算法:
- 枚举
- DFS
- BFS
- 启发式搜索
随机算法:
算法分类:
- 随机数
- 数值随机化算法
- Sherwood 舍伍德算法
- Las Vegas 拉斯维加斯算法
- Monte Carlo 蒙特卡罗算法
常见题型: - 计算 π 值
- 计算定积分
- 解非线性方程组
- 线性时间选择算法
- 跳跃表
- n 后问题
- 整数因子分解
- 主元素问题
- 素数测试
图论:
算法:
- 遍历 DFS / BFS
- AOV / AOE 网络
- Kruskal 算法(最小生成树)
- Prim 算法(最小生成树)
- Boruvka 算法(最小生成树)
- Dijkstra 算法(单源最短路径)
- Bellman-Ford 算法(单源最短路径)
- SPFA 算法(单源最短路径)
- Floyd 算法(多源最短路径)
- Johnson 算法(多源最短路径)
- Fleury 算法(欧拉回路)
- Ford-Fulkerson 算法(最大网络流增广路)
- Edmonds-Karp 算法(最大网络流)
- Dinic 算法(最大网络流)
- 一般预流推进算法
- 最高标号预流推进 HLPP 算法
- Primal-Dual 原始对偶算法(最小费用流)18. Kosaraju 算法(有向图强连通分量)
- Tarjan 算法(有向图强连通分量)
- Gabow 算法(有向图强连通分量)
- 匈牙利算法(二分图匹配)
- Hopcroft-Karp 算法(二分图匹配)
- kuhn munkras 算法(二分图最佳匹配)
- Edmonds’ Blossom-Contraction 算法(一般图匹配)
题目: - 图遍历
- 有向图和无向图的强弱连通性
- 割点/割边
- AOV 网络和拓扑排序
- AOE 网络和关键路径
- 最小代价生成树/次小生成树
- 最短路径问题/第 K 短路问题
- 最大网络流问题
- 最小费用流问题
- 图着色问题
- 差分约束系统
- 欧拉回路
- 中国邮递员问题
- 汉密尔顿回路
- 最佳边割集/最佳点割集/最小边割集/最小点割集/最小路径覆盖/最小点集覆盖
- 边覆盖集
- 二分图完美匹配和最大匹配问题
- 仙人掌图
- 弦图
- 稳定婚姻问题
- 最大团问题
NPC问题
- 随机存取机 RAM
- 随机存取存储程序机 RASP
- 图灵机
- 非确定性图灵机
- P 类与 NP 类语言
- 多项式时间验证
- 多项式时间变换
- Cook定理
- 合取范式的可满足性问题 CNF-SAT
- 3 元合取范式的可满足性问题 3-SAT
- 团问题 CLIQUE
- 顶点覆盖问题 VERTEX-COVER
- 子集和问题 SUBSET-SUM
- 哈密顿回路问题 HAM-CYCLE
- 旅行售货员问题 TSP
- 顶点覆盖问题的近似算法
- 旅行售货员问题近似算法
- 具有三角不等式性质的旅行售货员问题
- 一般的旅行售货员问题
- 集合覆盖问题的近似算法
- 子集和问题的近似算法
- 子集和问题的指数时间算法
- 子集和问题的多项式时间近似格式

浙公网安备 33010602011771号