贪心算法——活动分配

#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 };
//递归实现
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 << "资源分配给任务" << m << endl;
        Recursive_Activity_Selector(s, f, m, n);
    }
}
//贪心算法
void greeedy_a_s(int s[], int f[])
{
    int left = 1;
    int right;
    cout << "分配给任务1" << endl;
    for (right = 2; right <= N; right++)
    {
        if (s[right] >= f[left])
        {
            cout << "分配给任务"<<right << endl;
            left = right;
        }
    }
}
void main()
{
    Recursive_Activity_Selector(s, f, 0, N);
    cout << endl;
    greeedy_a_s(s, f);

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。