码迷,mamicode.com
首页 > 编程语言 > 详细

贪心算法随记

时间:2019-11-21 12:03:18      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:贪心算法   抉择   mst   如何   条件   递推算法   生成树   状态转移方程   简单   

贪心算法

定义:在每一步选择中都进行当前状态下的最优解, 从而希望导致结果是最好算法。
贪心算法在最优子结构问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。
举例:最小生成树的算法 (Prim MST、Kruskal MST、Dijkstra’s algorithm)

相比于动态规划

相同:均为递推算法;均由局部最优解来推导全局最优解

不同:
  贪心:做出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一步之前的最优解则不做保留。
  动态规划:全局最优解一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解。动态规划的关键是状态转移方程,即如何由已经求出的局部最优解来推导全局最优解。边界条件:即最简单的可以直接得出局部最优解。
  如何区分:反例。当前最优解改变,是否影响以后解(抉择过程)。多个状态多个过程。

贪心算法随记

标签:贪心算法   抉择   mst   如何   条件   递推算法   生成树   状态转移方程   简单   

原文地址:https://www.cnblogs.com/shuaizhang/p/11904298.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!