您的位置:首页 > 其它

贪心算法-活动安排问题

2016-03-30 15:00 417 查看
贪心算法-活动安排问题

具体求解思路:

首先将活动按照结束时间从小到大排序,

然后将startTime[i]大于finishTime[i-1]的活动安排进去,

由于活动结束时间是事前排好序的(具体排序方法可以看我之前的博客),所以按照此方法,安排的活动相对于来说总是先结束的,这样来说就可以尽量最大化的利用资源。

相关的代码:

public class ActivityPlan {
public static int greedySelector (int []s,int []f,boolean []a){
int n=s.length-1;
a[1]=true;
int j=1;
int count=1;
for(int i=2;i<=n;i++){
if(s[i]>=f[j])
{   a[i]=true;
j=i;
count++;
}else a[i]=false;
}
return count;
}
public static void main(String args[]){
int s[] = {1,3,0,5,3,5,6,8,8,2,12};
int f[] = {4,5,6,7,8,9,10,11,12,13,14};
boolean []b=new boolean[s.length+1];
System.out.print(greedySelector(s,f,b));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: