/*
//递归贪心算法求解活动选择问题
#include <iostream>
using namespace std;
#define N 11
int s[N+1]={0,1,3,0,5,3,5,6,8,8,2,12};
int f[N+1]={0,4,5,6,7,8,9,10,11,12,13,14};
int a[N+1];
void Recursive_Activity_Selector(int s[],int f[],int i,int n)
{
int m=i+1;
while(m<=n&&s[m]<f[i])
m=m+1;
if(m<=n)
{
cout<<'a'<<m<<' ';
Recursive_Activity_Selector(s,f,m,n);
}
}
void main()
{
Recursive_Activity_Selector(s,f,0,N);
cout<<endl;
}
*/
//迭代贪心算法求解活动选择问题
#include <iostream>
using namespace std;
#define N 11
int s[N+1]={0,1,3,0,5,3,5,6,8,8,2,12};
int f[N+1]={0,4,5,6,7,8,9,10,11,12,13,14};
int a[N+1];
void Greedy_Activity_Selector(int s[],int f[])
{
cout<<"a1"<<' ';
int i=1;
for(int m=2;m<=N;++m)
{
if(s[m]>f[i])
{
cout<<'a'<<m<<' ';
i=m;
}
}
}
void main()
{
Greedy_Activity_Selector(s,f);
cout<<endl;
}
算法导论 第16章 活动选择问题的递归和迭代贪心算法
最新推荐文章于 2024-07-03 07:00:00 发布