您的位置:首页 > 其它

算法实践-最大数量活动选择-贪心算法

2014-03-22 12:50 309 查看
package com.greedy;

public class ActivitySelect {
private int[][]activity;
private int[][]select;
private int index;
public ActivitySelect(int[][]activity){
this.activity=activity;
select=new int[activity.length][2];

}
public void activitySelector(){
inneractivitySelector(0);
printActivity();
}
private void inneractivitySelector(int start){
int m=start+1;
if(m==activity.length){
select[index][0]=activity[start][0];
select[index][1]=activity[start][1];
}else{
while(m<activity.length&&activity[m][0]<activity[start][1]){
m=m+1;
}
if(m<activity.length){
select[index][0]=activity[start][0];
select[index][1]=activity[start][1];
index=index+1;
inneractivitySelector(m);
}
}

}
public void printActivity(){
for(int i=0;i<select.length;i++){
if(select[i][0]==0){
break;
}
System.out.print("("+select[i][0]+","+select[i][1]+") ");
}
System.out.println();
}
public static void main(String[] args) {
int[][]activity=new int[][]{
{1,4},
{3,5},
{0,6},
{5,7},
{3,9},
{5,9},
{6,10},
{8,11},
{8,12},
{2,14},
{12,16}
};
ActivitySelect select=new ActivitySelect(activity);
select.activitySelector();

}

}

活动以结束时间升序排列
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: