活动选择问题

使用贪心算法来解决

数据结构
1 //Eleven activities,sort by finish time already, that's important.
2 int Start[]={1,3,0,5,3,5,6,8,8,2,12};//Start time
3 int Finish[]={4,5,6,7,8,9,10,11,12,13,14};//Finish time
4 int n=11;//Eleven activities
5
6 vector<int> Activity;//vector containing activities you choose
贪心算法
 1 void Greedy()
2 {
3 int m=0;
4 Activity.push_back(m+1);
5 for(int i=1;i!=n;++i)
6 {
7 if(Start[i]>=Finish[m])
8 {
9 Activity.push_back(i+1);
10 m=i;
11 }
12 }
13 }
测试程序
 1 int main()
2 {
3 Greedy();
4 vector<int>::iterator iter=Activity.begin();
5 for(;iter!=Activity.end();++iter)
6 {
7 cout <<"Activity["<<*iter<<"] ";
8 }
9 return 0;
10 }





posted @ 2012-02-09 17:39  Cavia  阅读(440)  评论(0编辑  收藏  举报