任务安排问题(贪心法)

本文探讨了使用贪心法解决任务安排问题,重点在于贪心选择性和优化子结构。算法选择结束时间最小的任务以求得最大相容集合。伪代码和C++实现代码展示了解决方案,算法复杂度在结束时间已排序时为O(n),未排序时为O(nlogn)。
摘要由CSDN通过智能技术生成
贪心法满足条件:

1.贪心选择性
2.优化子结构


输入:S={1,2,……,n}个任务,F={[Si ,f i]},为任务的开始时间和结束时间

**输出:**S的最大相容集合(也就是如何选择任务,才能执行最多的任务?)

贪心思想:
为了选择最多的相容活动,每次选fi最小的活动,也就是结束时间最小的活动,使我们能够余下更多的时间选择更多的活动。


算法伪代码:

贪心-Activity-Selector(S,F)
n ← lenyth{
   1};
A ← {
   1}
j1
For i2 To n Do
    if si>=fj
    Then A←AU{i};ji;
Return A 

算法复杂度分析:

  • 如果结束时间已经排序
    T

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值