『算法』——贪心算法

贪心算法

\quad \quad 贪心算法(greedy algorithm),又称贪婪算法,在每一步都做出当时看起来最好的选择,就是不断贪心的选取当前最优策略的计算方法。

目的: 贪心算法是求解最优化问题

适用条件/前提

  • 贪心选择性质:
    可以通过做出局部最优(贪心)选择来构造全局最优解。换句话说,当进行选择时,我们直接做出在当前问题中看来最优的选择,而不是考虑子问题的解
  • 最优子结构:
    如果一个问题的最优解包含其子问题的最优解,则称此问题具有最优子结构性质。

解题步骤设计思路

  • 1、将最优化问题转化为这样的形式:对其做出一个选择后,只剩下一个子问题需要求解。
  • 2、证明做出贪心选择后,原问题总是存在最优解,即贪心选择是安全的。
  • 3、证明做出贪心选择后,剩余的子问题满足性质:其最优解与贪心选择组合即可得到原问题的最优解,这样就得到了最优子结构。

对比动态规划

\quad \quad 动态规划与贪心算法都是解决最优问题的,但是也有以下几点区别:

  • 贪心算法并不保证得到最优解,但对很多问题确实可以求的最优解。

  • 动态规划算法是自底向上计算的,而贪心算法通常是自顶向下的,进行一次又一次选择,将给定问题实例变小。

  • 贪心算法和动态规划相比,它既不看前面(也就是说它不需要从前面的状态转移过来),也不看后面(无后效性,后面的选择不会对前面的选择有影响),因此贪心算法时间复杂度一般是线性的,空间复杂度是常数级别的。

参考资料:
算法导论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值