美文网首页
贪心的理解

贪心的理解

作者: Young_Kind | 来源:发表于2018-01-18 21:12 被阅读18次
贪心法的基本思路:

从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。
该算法存在问题:

  1. 不能保证求得的最后解是最佳的;
  2. 不能用来求最大或最小解问题;
  3. 只能求满足某些约束条件的可行解的范围。

实现该算法的过程:
从问题的某一初始解出发;
while 能朝给定总目标前进一步 do
求出可行解的一个解元素;
由所有解元素组合成问题的一个可行解;

通俗的例子:

比如中国的货币,只看元,有1元2元5元10元20、50、100

如果我要16元,可以拿16个1元,8个2元,但是怎么最少呢?
如果用贪心算,就是我每一次拿那张可能拿的最大的。
比如16,我第一次拿20拿不起,拿10元,OK,剩下6元,再拿个5元,剩下1元
也就是3张 10、5、1。

每次拿能拿的最大的,就是贪心。

但是一定注意,贪心得到的并不是最优解,也就是说用贪心不一定是拿的最少的张数
贪心只能得到一个比较好的解,而且贪心算法很好想得到。
再注意,为什么我们的钱可以用贪心呢?因为我们国家的钱的大小设计,正好可以使得贪心算法算出来的是最优解(一般是个国家的钱币都应该这么设计)。如果设计成别的样子情况就不同了
比如某国的钱币分为 1元3元4元
如果要拿6元钱 怎么拿?贪心的话 先拿4 再拿两个1 一共3张钱
实际最优呢? 两张3元就够了

贪心就是找距离目标最近的拿,不管最终的结果,只注重局部或者眼前的结果的方法
按照这种方法就是有可能丧失全局最优的

就好比两个人分5个大饼,一次可以拿一个或者两个,不吃完不允许再拿
A:用贪心方法:第一次拿两个,B拿一个,那么B最终拿3个
这个就是贪心方法失败的一个例子

有的时候贪心算法也是可以得到最优解的,比如还是大饼的例子,但是现在总数是7个了
A继续贪心,先两个,再两个就是4个了;
而B先1个,后2个,就只能是3个

相关文章

  • 贪心的理解

    贪心法的基本思路: 从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步...

  • 【算法打卡60天】Day29贪心算法:如何用贪心算法实现Huff

    Day29学习内容 :贪心算法:如何用贪心算法实现Huffman压缩编码? 1.如何理解贪心算法?贪心算法解决问题...

  • 贪心算法:使用贪心算法实现哈夫曼编码

    文章结构 如何理解贪心算法 贪心算法实例分析 使用贪心算法实现哈夫曼编码 源码地址 说明 算法中基本的算法思想有:...

  • 贪心算法

    如何理解贪心算法 当前状态下的最优解 霍夫曼编码

  • LeetCode进阶1029-贪心

    概要 上一篇博客《LeetCode进阶944-贪心》,有朋友提出建议944对理解贪心算法并不具有很强的代表性。回顾...

  • 跳跃游戏

    在跳跃游戏中,要明白贪心法则的定义。贪心法则:最基本的理解就是,每次选择当前最优的解,到最后就能得到整个问题的最优...

  • Day38+1组126号路遥+《财务自由之路》

    今天阅读4-6 章节 【旧知】 我从小就被灌输了一个观念:知足者常乐。我对这句话的理解是要知道满足,不要贪心,贪心...

  • 贪心算法

    如何理解“贪心算法”? 第一步,当我们看到这类问题的时候,首先要联想到贪心算法:针对一组数据,我们定义了限制值和期...

  • 《知足+不贪心=获得幸福》2018.10.15 - 草稿

    ——平子·2018.10.15(181) 个人理解:知足就是懂得克制,不要多只要合适;不贪心就是不比较,不...

  • 舍得

    贪心VS舍得,目标太多—贪心,什么都想得到—贪心,什么都想要美好—贪心,什么都想要舒服—贪心,没有付出就想要得到—...

网友评论

      本文标题:贪心的理解

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