活动安排问题贪心算法python代码
时间: 2024-05-13 22:12:58 浏览: 108
活动安排问题之贪心算法
活动安排问题是指在一个时间段内,有若干个活动要进行,但是由于时间和场地等资源的限制,这些活动可能无法同时进行。问题就在于如何安排这些活动使得尽可能多的活动能够顺利进行。
贪心算法是一种常用于解决活动安排问题的算法。其基本思想是,在每个时间点选择能够进行的活动中,选择结束时间最早的活动。
以下是Python实现贪心算法解决活动安排问题的代码:
```python
def activity_selection(start, end):
# 将开始时间和结束时间按照结束时间升序排序
n = len(end)
activity = list(range(n))
for i in range(n-1):
for j in range(i+1,n):
if end[i]>end[j]:
end[i],end[j]=end[j],end[i]
start[i],start[j]=start[j],start[i]
# 贪心算法,选择最早结束的活动
j = 0
for i in range(n):
if start[i] >= end[j]:
activity[i] = 1
j = i
# 返回被选中的活动编号
return [i+1 for i in range(n) if activity[i]==1]
```
以上代码实现了对开始时间和结束时间进行排序,并根据贪心算法选择最早结束的活动。返回的结果是被选中的活动编号列表。
相关问题:
1. 活动安排问题是什么?
2. 贪心算法是如何解决活动安排问题的?
3. 除了贪心算法,还有哪些算法可以解决活动安排问题?
阅读全文