贪心算法简介

目录

一、什么是贪心算法?

二、贪心算法的特点

三、贪心算法解决找零问题、最短路径问题、背包问题

1.找零问题

2.最短路径问题

3.背包问题


一、什么是贪心算法?

贪心算法就是希望通过局部最优来解决全局最优

基本步骤:1.将问题分为若干步

                  2.解决每一步都选择“看起来”最优的算法

                  3.“希望”通过局部最优最终得到全局最优

二、贪心算法的特点

1.贪心算法的策略没有标准与模板,每一题的贪心策略可能都不同

2.贪心算法的正确性不能确定(这就是基本步骤中2会说 选择“看起来”最优的算法 和基本步骤中3会说 “希望”得到全局最优的原因)

三、贪心算法解决找零问题、最短路径问题、背包问题

1.找零问题

用50元买4元的东西,商家有20、10、5、1元的纸币,如何用最少张数的纸币找零钱?

50-4=46元,需要找46元的零钱。

根据生活经验来提出贪心策略:要用最少张数的纸币,首先一定需要用面额最大的纸币,先选出2张20元的纸币,再选出1张5元纸币,最后选出1张1元纸币,一共是4张纸币

2.最短路径问题

从下图左上角走到右下角,只能向下或者向右走,找出最短路径

 根据题意提出贪心策略:一次走一步,每一步选择最短的路径,最终得出的路径为1-1-6-1-1(这并不是真正的答案,但是由贪心策略得出来的结果确实是这样,这就是贪心算法的特点,正确性不能确定)

3.背包问题

有一个最大体积为8的背包,找出可以背物品总价值最大的方案

根据体积最小(背得多)提出贪心策略:背8个1号物品,总价值为1*8=8

根据价值最高(价值高)提出贪心策略:背1个1号物品,3个3号物品,总价值为10+1+1+1=13

根据单位体积价值最高提出贪心策略:背1个1号物品,3个3号物品,总价值为10+1+1+1=13

(这三种方案其实都不对,但确实是由贪心算法得出的结果,这也验证了贪心算法的特点:正确性不能确定)

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南林yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值