算法分析与设计实践-作业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

猜你喜欢

转载自blog.csdn.net/qq_43633353/article/details/105924031