贪心算法概述
顾名思义:总是做出当前看来最优的选择,并不是整体上最优加以考虑,最初的选择只是在某种意义上的局部最优选择。
- 活动安排问题:要求高效地安排一系列争用某一公共资源的活动,使尽可能多的活动能够兼容地使用公共资源。
- n个活动的集合,每个活动都有开始时间s和结束时间f,
- 思想:按照结束时间非减排序,安排的活动不产生冲突,也就是前一个问题的结束时间f要小于下一个问题的开始时间s,满足条件即可进行活动安排。
java代码
int[] s //表示每个活动的开始时间
int[] f //表示每个活动的结束时间
boolean[] a //表示活动是否被选入
public class ActionOrder {
public int greedySelector(int[] s, int[] f, boolean[] a){
int n = s.length - 1;
a[1] = true;