算法导论笔记:16贪心算法

本文介绍了贪心算法的基本思想和应用,以活动选择问题为例,详细阐述了如何利用贪心算法解决最优化问题。首先解释了贪心选择性质和最优子结构在贪心算法中的重要性,然后分别展示了递归和迭代的贪心算法实现,并对比了贪心算法与动态规划的区别。此外,文章还讨论了01背包问题和分数背包问题,说明了贪心算法在分数背包问题中的适用性。
摘要由CSDN通过智能技术生成

       动态规划方法求解最优化问题时,每个步骤都面临多种选择。对于许多最优化问题,使用动态规划算法来求解最优解有些杀鸡用牛刀了,可以使用更简单更高效的贪心算法。贪心算法在每一步的选择中,都选择当时最佳的情况。即局部最优的选择。贪心算法并不能保证总能得到最优解,但是很多问题确实可以求得最优解。

 

一:活动选择问题

       多个活动调度竞争共享资源,目标是选出一个最大的互相兼容的活动集合。假设有一个n个活动组成的集合S = { }。这些活动使用同一个资源(如教室)。该资源一次只能被一个活动占用。每个活动 都有一个开始时间 和结束时间 。其中0   < ∞如果被选中后,活动 就占据半开时间区间[ )。如果两个活动 满足[ )和[ )不重叠,则他们是兼容的。在活动选择问题中,希望选出一个最大兼容活动集。假定活动已经按照结束时间进行了排序:


       比如下面的活动集合S:

      

子集{ }中的活动相互兼容,子集{ }和子集{ }都是最大相容子集。

 

1:最优子结构

       可以证明该问题具有最优子结构性质,考虑S的子集 ,表示在 开始前的所有活动的集合。希望求得

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值