用贪心算法解决活动安排问题代码
时间: 2024-11-23 08:11:52 浏览: 5
在解决活动安排问题(也称为任务调度、课程表冲突等)时,贪心算法通常用于寻找局部最优解,比如选择能够最大程度地覆盖时间窗口的活动。这里是一个简单的Python代码示例,使用贪心策略来尽可能地将活动添加到日程中,同时避免时间冲突:
```python
def activity_scheduling(activities, time_limit):
activities.sort(key=lambda x: (x[1] - x[0], x[0])) # 按结束时间降序,开始时间升序排序
schedule = []
for activity in activities:
if not schedule or activity[0] >= schedule[-1][1]: # 如果没有冲突或者新的活动开始时间大于等于上一个活动结束时间
schedule.append(activity) # 添加活动到日程
else: # 存在冲突,跳过此活动
pass
return schedule
# 示例:
activities = [(1, 3), (2, 4), (7, 9), (5, 6)] # 活动开始和结束时间列表
time_limit = 10 # 总的时间限制
result = activity_scheduling(activities, time_limit)
print("Scheduling:", result)
#
阅读全文