局部最优决策与全局状态空间:贪心算法与动态规划的理论分界
贪心(Greedy)和动态规划(DP)都是解决最优化问题的常用算法思想,但核心差异在于“决策依据”和“后悔机制”。
| 维度 | 贪心 | 动态规划 |
|---|---|---|
| 决策方式 | 每一步只做局部最优选择,一旦决定就不再更改 | 记录所有可能状态的最优值,随时可被后续结果“覆盖” |
| 最优性保证 | 必须满足“贪心选择性质 + 最优子结构”才能全局最优;否则可能次优 | 只要满足“最优子结构 + 重叠子问题”就能保证全局最优 |
| 信息利用 | 仅依赖当前局部信息(不看未来,不回头) | 综合子问题的全局信息(过去状态全部保存) |
| 实现复杂度 | 通常 O(n log n) 或更低,代码短 | 状态维度高时可达 O(n²)、O(n³),代码长 |
| 典型场景 | 霍夫曼编码、Dijkstra(非负权)、Prim、Kruskal、活动选择 | 0-1 背包、最长公共子序列、编辑距离、区间 DP |
一句话记忆:
贪心“走一步看一步,绝不后悔”;动态规划“把每一步都试一遍,选最好的记下来”。

被折叠的 条评论
为什么被折叠?



