贪心算法

本文介绍了贪心算法的概念、两个要素,并通过活动安排、背包问题、最优装载等实例详细阐述了贪心策略的选择与证明过程,揭示了贪心算法在特定问题中的应用和有效性。
摘要由CSDN通过智能技术生成

一、贪心算法的概念

        考察一个实例,找硬币问题。有四种面值的硬币二角五分,一角,五分,一分。现在要找给顾客六角三分钱,使用贪心算法求解过程如下:

        首先在所有硬币中找出面值不大于六角三分的最大面值的硬币,显然二角五分满足条件,那么接下来六角三分-二角五分剩下三角八分,那么按照刚才的办法,在所有硬币中找出不大于三角八分的面值最大的硬币,显然又是二角五分,剩下来一角三分,在接下来一样的办法,在所有硬币中找出不大于一角三分的面值最大的硬币,显然为一角硬币,以此类推,最终得到结果两枚二角五分的硬币和一枚一角硬币和三枚一分硬币。

        这就是贪心算法求解问题的过程,也就是说贪心算法并不从整体最优上考虑问题,它在每一步做出的选择都是在当前的某个局部或者某种意义上来说是最优的,从而最终得到整体的最优解,有可能并不是最优解,但贪心算法在某些场合能取到最优解。例如刚才的找硬币问题找到的就是最优解。贪心算法相比于动态规划算法来说更容易理解,算法更简单。

二、贪心算法的两个要素

1、最优子结构的性质

        当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构的性质。通俗的来说就是任何规模的子问题的最优解包含在整个问题的最优解当中。

2、贪心选择性质

        贪心选择性质其实就是能找到一种贪心策略,通过这个策略一步步求解最终能得到整体的最优解

        在贪心算法中,每一步计算都选择的是仅在当前状态下做出的最优选择,并不依赖于未来的选择。对于一个具体的问题需要确定他是否具有贪心选择性质,必须证明每一步所做的贪

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值