活动安排问题
问题描述
设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。
每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si<fi。如果选择了活动i,则它在半开时间区间[si ,fi )内占用资源。若区间[si ,fi )与区间[sj,fj )不相交,则称活动i与活动j是相容的。当 si ≥ fj 或 sj ≥ fi 时,活动i与活动j相容。
活动安排问题就是在所给的活动集合中选出最大的相容活动子集合。
算法分析
活动安排问题的贪心特性(贪心的体现:最多的活动)。
如何在有限的时间内安排更多的活动(贪心策略)?
需要先安排结束时间早的活动(剩余时间多) 。
因此,需要根据活动的结束时间对活动进行排序
在排序的基础上,依次来寻找相容的活动