贪心算法-相容问题实验报告

实验报告

课程名称 《算法分析与设计》 实验日期 2020 年 4 月28日 至 2020年 5月 5 日
学生姓名 戴昊宇 所在班级 计算机184 学号 2018212212015
实验名称 贪心算法-相容问题
实验地点 同组人员 无

1.问题
有n项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截止时间。如果任何两项活动不能同时举行,问如何选择这些活动,从而使得被安排的活动数量达到最多。
2.解析
设S为活动的集合,si和fi分别为活动i的开始和截止时间。
定义:活动i和j相容。
求S最大的两两相容的活动子集A。
把活动按照截止时间从小到大排序,使得f1<=f2<=…<=fn,然后从前往后挑选,只要和前面选的活动内容相容,就把这项活动选入A。
3.设计
Greedy-activity-selector(s,f)
n=s.length
A={a1}
k=1
for m=2 to n
if s[m]>=f[k]
A=A和{am}的交集
k=m
return A
4.分析
算法复杂度:O(n)
5.源码
https://github.com/yyqx-1128/text

你可能感兴趣的:(贪心算法-相容问题实验报告)