算法导论阅读笔记——第16章 贪心算法

贪心算法通过局部最优选择尝试达到全局最优解,适用于活动选择问题和赫夫曼编码。活动选择问题中,选取最早结束的活动,通过递归或迭代实现解决方案。赫夫曼编码利用贪心策略构造无前缀码,实现数据高效压缩。
摘要由CSDN通过智能技术生成

定义及原理

和动态规划算法相比,贪心算法是一种更简单、更高效的算法。它在每一步都住处当时看起来最佳的选择,也就是说,它总是做出局部最优的选择,寄希望于这样的选择能导出全局最优解。
贪心算法并不能保证得到最优解,但是对于一些问题,确实可以得到最优解。
一个贪心算法能够求解一个最优化问题的两个关键因素是:贪心选择性质最优子结构
贪心选择性质即可以通过做出局部最优选择来构造全局最优解。
最优子结构性质,即一个问题的最优解包含其子问题的最优解。

活动选择问题

问题描述及分析

假定有一个n个活动的集合S={a1,a2,……,an}。这些活动都使用同一个资源,而这个资源在同一时间只能被一个活动使用(比如教室)。每一个活动ai有一个开始时间si和一个结束时间fi。开始时间早于结束时间。即活动在时间[si,fi)区间内执行。所以只要两个活动的执行区间不重叠,就兼容。
用Sij表示在ai结束之后开始,且在aj开始之前结束的那些活动的集合。用c[i, j]表示集合Sij的最优解的大小。推出公式如下:
在这里插入图片描述
有这个公式,我们

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值