zoukankan      html  css  js  c++  java
  • 贪心算法

    贪心算法

    贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。

    算法思路

    贪心算法一般按如下步骤进行:
    ①建立数学模型来描述问题 。
    ②把求解的问题分成若干个子问题 。
    ③对每个子问题求解,得到子问题的局部最优解 。
    ④把子问题的解局部最优解合成原来解问题的一个解 。 

    使用条件

    利用贪心法求解的问题应具备如下2个特征
    1、贪心选择性质
    一个问题的整体最优解可通过一系列局部的最优解的选择达到,并且每次的选择可以依赖以前作出的选择,但不依赖于后面要作出的选择。这就是贪心选择性质。对于一个具体问题,要确定它是否具有贪心选择性质,必须证明每一步所作的贪心选择最终导致问题的整体最优解
    2、最优子结构性质
    当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。问题的最优子结构性质是该问题可用贪心法求解的关键所在。在实际应用中,至于什么问题具有什么样的贪心选择性质是不确定的,需要具体问题具体分析 。

    存在问题

    贪心算法也存在如下问题: 
    1、不能保证解是最佳的。因为贪心算法总是从局部出发,并没从整体考虑
    2、贪心算法一般用来解决求最大或最小解
    3、贪心算法只能确定某些问题的可行性范围。
     

    因上求缘,果上努力~~~~ 作者:每天卷学习,转载请注明原文链接:https://www.cnblogs.com/BlairGrowing/p/13618668.html

  • 相关阅读:
    抽象类abstract
    final关键字特点
    继承ExtendsFour
    继承(继承中构造方法的关系)
    继承ExtendsTwo-super&this
    继承ExtendsOne
    静态
    构造方法与setXxx方法
    15.8
    15.7
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/13618668.html
Copyright © 2011-2022 走看看