- 8
- 0
- 约5.43千字
- 约 36页
- 2017-06-08 发布于重庆
- 举报
1
第4章 贪心算法
2
基本思想
3
基本思想
4
基本思想
5
基本思想
例子:如果面值改为1分、5分和11分,现要找给顾客15分,则用贪心算法,找钱方法:11 + 1 + 1 + 1 + 1
显然,找3个5分解决问题!!!
两种情况下可采用贪心算法:
1、利用贪心算法能够找到原问题的整体最优解;
2、利用贪心算法找到的解是原问题解的近似解。
不是整体最优解
6
活动安排问题
设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si fi 。如果选择了活动i,则它在半开时间区间[si, fi)内占用资源。
若区间[si, fi)与区间[sj, fj)不相交,则称活动i与活动j是相容的。也就是说,当si≥fj或sj≥fi时,活动i与活动j相容。
活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合。
7
活动安排问题
假设个活动的起始时间和结束时间存储于数组s和f中且按照结束时间的非递减序排列。
注意:如果所给出的活动未按此序排列,可以用O(nlogn)的时间重排。
void GreedySelector(int n, int s[], int f[], bool A[])
{ A[1]=true;
int j=1;
原创力文档

文档评论(0)