贪心算法实现活动安排问题
时间: 2023-10-28 13:15:02 浏览: 79
活动安排问题是指在一段时间内有很多活动需要安排,但是每个时间段只能安排一个活动。每个活动都有一个开始时间和结束时间,每个活动的时间都是不同的。现在需要在这段时间内安排尽可能多的活动,那么如何才能安排最多的活动呢?
贪心算法是一种解决活动安排问题的有效方法。具体思路如下:
1. 按照活动的结束时间从小到大排序;
2. 选择结束时间最早的活动,并将其加入已安排活动的列表中;
3. 从剩余未安排的活动中选择开始时间大于等于上一个活动结束时间的活动,将其加入已安排活动的列表中;
4. 重复步骤3,直到所有活动都被安排完毕。
以下是使用Python实现的贪心算法代码:
```python
def activity_selection(start, end):
n = len(end)
selected = [] # 记录已选择的活动
i = 0
for j in range(n):
if start[j] >= end[i]: # 如果当前活动的开始时间大于等于上一个活动的结束时间
selected.append(j) # 将当前活动加入已选择的活动列表
i = j # 更新上一个活动的索引
return selected
```
其中,`start`和`end`分别是活动的开始时间和结束时间,返回值是已选择的活动的索引列表。
阅读全文