贪婪算法是一类算法策略,在每个步骤上都作出最佳选择,希望找到全球最佳选择,它们被广泛用于解决局部决定导致全球最佳解决方案的优化问题,本条探讨了贪婪算法的概念,提供了实际例子,并演示了如何进行相关计算.

什么是贪婪的算法?

贪婪算法逐块构建一个解决方案,总是选择下一个能提供最直接好处的解决方案。 这种方法简单高效,但并不总是保证所有问题都能得到最佳的总体解决。 当问题显示出贪婪选择属性和最佳子结构时,它的效果最大。

实际实例

使用贪婪算法解决的常见问题包括硬币变化问题、活动选择和分数折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式套叠式套装。 这些例子说明了如何在具体情景中做出本地最佳选择,从而导致全球最佳解决方案。

计算和执行

考虑硬币变化问题,如果目标是用最少的硬币来改变一定数额。 如果硬币面额是1,5,10和25美分,目标金额是63美分。 贪婪的方法涉及选择最大硬币低于或等于每步剩余数额。

逐步计算 :

  • 选择25美分(剩余:63-25=38)
  • 选择25美分(剩余:38-25=13)
  • 选择10美分( 剩余: 13 - 10 = 3)
  • 选择1%(其余:3 - 1=2)
  • 选择1%(其余:2 - 1=1)
  • 选择1%( 剩余:1 - 1 = 0)

使用的总硬币:6.