贪心算法-活动选择问题(python全部代码)
时间: 2024-12-14 09:14:12 浏览: 1
贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,以希望导致结果是全局最好的策略。对于活动选择问题(也称为任务调度或项目调度),通常涉及到给定一系列有开始时间和结束时间的任务,目标是找到能完成的最大数量的任务组合,同时保证不会发生冲突。
下面是一个简单的Python实现,假设我们有一个列表`activities`,每个元素代表一个任务,包含两个属性`start`和`end`表示任务的开始和结束时间:
```python
def activity_selection(activities):
# 对活动按结束时间升序排序
activities.sort(key=lambda x: x[1])
selected_tasks = []
current_end = float('-inf') # 当前已选任务的结束时间
for i in range(len(activities)):
if activities[i][0] > current_end:
selected_tasks.append(activities[i])
current_end = activities[i][1]
return selected_tasks
# 示例:
activities = [(1, 7), (2, 4), (3, 5), (6, 8)]
result = activity_selection(activities)
print("最大可以完成的任务:", result)
阅读全文