数据结构与算法-----贪心算法

本文介绍了贪心算法的核心思想,即在每个步骤中选择局部最优解,并探讨了其在解决问题时的建模过程和局限性。通过一个找零钱的例子,阐述了如何运用贪心策略来解决问题。虽然贪心算法不一定能得到全局最优解,但常用于哈夫曼编码、最小生成树和最短路径等问题。
摘要由CSDN通过智能技术生成

贪心算法的核心思想

  • 贪心算法(Greedy)
    在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的仅仅是在某种意义上的局部最优解
    贪心算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性。

  • 基本思路

  1. 建立数学模型来描述问题。
  2. 一般结合分治的思想,把求解的问题分成若干个子问题。
  3. 对每一子问题求解,得到子问题的局部最优解。
  4. 把子问题的解,也就是局部最优解,合成原来解问题的一个解(可能并非全局最优,需要无后效性)。

贪心算法存在的问题:
 不能保证求得的最后解是最佳的
 不能用来求最大值或最小值的问题
 只能求满足某些约束条件的可行解的范围

贪心算法的应用:
比如:哈夫曼编码、图算法中的最小生成树算法、单元最短路径等都是运用到
其核心的思想如下例题解析的:
在这里插入图片描述
官方当中其实是给了详细的题解,但是在这里的话,还是按照贪心的核心思想去写这些
1、需要建立数学模型
我们知道,当给5¥,我们直接的接受接好的
10¥ 的时候,需要找回5¥,若有则找回,否则的话就直接的返回false就好的
20¥的时候,需要找回15¥,存在两种方式,其一就是一张10和5或者是三张5元的,如果两种方式都没有的话,则就无法进行找回的
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值