美文网首页云莉的技术专题
贪心算法 greedy algorithm

贪心算法 greedy algorithm

作者: 云莉6 | 来源:发表于2020-04-07 13:27 被阅读0次

定义

  • 又称贪婪算法
  • 是一种在每一步选择中都采取当前状态下最好或最优的(即最有利的)选择,从而希望导致结果是最好或最优的算法。
  • 贪心算法在有最优子结构的问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。
  • 贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择。不能回退,动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。
  • 贪心算法可以解决一些最优化的问题,如:求图中的最小生成树,求哈夫曼编码...对于其他问题,贪心法一般不能得到我们所要求的答案。一旦一个问题可以通过贪心法来解决,那么贪心法一般是解决这个问题的最好办法。
  • 由于贪心法的高效性以及所求得的答案比较接近最优结果,贪心法也可以用作辅助算法或直接解决一些要求结果不特别精确的问题。

细节

  1. 创建数学模型来描述问题。
  2. 把求解的问题分成若干个子问题。
  3. 对每一个子问题求解,得到子问题的局部最优解。
  4. 把子问题的解局部最优解合成原来问题的一个解。

实现该算法的过程

从问题的某一初始解出发;while 能朝给定总目标前进一步 do,求出可行解的一个解元素;最后由所有元素组合成问题的一个可行解。

相关文章

  • 算法理论 | 贪心算法

    贪心算法 贪心算法,又称贪婪算法(Greedy Algorithm),是指在对问题求解时,总是做出在当前看来是最好...

  • 《数据结构与算法之美》31——贪心算法

    什么是贪心算法 贪心算法(英语:greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前...

  • 贪心算法 Greedy Algorithm

    当我们遇到一个问题的时候,怎么去寻找解决这个问题的最优方案。把这个问题分解成不同的步骤,然后把每一个步骤都运用贪心...

  • 贪心算法 greedy algorithm

    定义 又称贪婪算法 是一种在每一步选择中都采取当前状态下最好或最优的(即最有利的)选择,从而希望导致结果是最好或最...

  • LeetCode—— 跳跃游戏

    题目描述 一、CPP 1.贪心算法(Greedy Algorithm): 解题思路:这题最好的解法不是 DP,而是...

  • Python算法-贪心算法(Greedy Algorithm)

    贪心算法 在每一次做决策时,保证当下的决策是最优的,从而使得最后的结果是最优的。 455. 分发饼干[https:...

  • 贪心算法

    概述 贪心算法(英语:greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好...

  • 贪婪算法

    贪婪算法(Greedy Algorithm)也叫算贪心法,贪婪法.它是一个遵循启发式解决问题的算法范式.它的核心思...

  • 强化学习基础篇(三十六)Greedy探索算法

    强化学习基础篇(三十六)Greedy探索算法 1、贪婪算法(Greedy Algorithm) 我们使用每次的即时...

  • 程序设计的16种类型

    Dynamic Programming(动态规划) Greedy(贪心算法) Complete Search(穷举...

网友评论

    本文标题:贪心算法 greedy algorithm

    本文链接:https://www.haomeiwen.com/subject/dyogphtx.html