算法分析与设计实践-作业10-贪心算法之相容问题

贪心算法之相容问题

1.问题

有n项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截止时间。如果任何两个活动不能同时进行,问如何选择这些活动,从而使得被安排的活动数量达到最多。

2.解析

贪心策略1:活动按结束时间进行升序排序
在这里插入图片描述
选择活动:1,4,8 最多数量:3
最优策略

贪心策略2:活动按开始时间进行升序排序
在这里插入图片描述
选择活动:1,5 最多数量:2
不是最优策略

贪心策略3:按活动占用时间进行升序排序
在这里插入图片描述
选择活动:1,2,8 最多数量:3
不是最优策略

反例:
若用贪心策略3:
在这里插入图片描述
选择活动:1,3 最多数量:2
而使用最优策略:
在这里插入图片描述
选择活动:1,2,3 最多数量:3

3.设计

在这里插入图片描述

4.分析

时间复杂度:O(nlogn)

5.源码

https://github.com/lu-225/As-before/blob/master/2018212212124%20%E9%99%86%E5%AE%B6%E8%BE%89%20%E5%AE%9E%E9%AA%8C10/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95%E4%B9%8B%E7%9B%B8%E5%AE%B9%E9%97%AE%E9%A2%98.cpp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值