#include <stdio.h>
#include <stdlib.h>
#define N 11
typedef struct ActNode
{
int start;
int end;
}Act,*pAct;
pAct initActs()
{
pAct acts=(pAct)malloc(N*sizeof(Act));
acts[0].start=1;
acts[0].end=4;
acts[1].start=3;
acts[1].end=5;
acts[2].start=0;
acts[2].end=6;
acts[3].start=5;
acts[3].end=7;
acts[4].start=3;
acts[4].end=9;
acts[5].start=5;
acts[5].end=9;
acts[6].start=6;
acts[6].end=10;
acts[7].start=8;
acts[7].end=11;
acts[8].start=8;
acts[8].end=12;
acts[9].start=2;
acts[9].end=14;
acts[10].start=12;
acts[10].end=16;
return acts;
}
void greed(pAct acts)
{
int k=0;
printf("a[%d] ",k+1);
for(int m=k+1;m<N;m++)
{
if(acts[m].start>=acts[k].end)
{
k=m;
printf("a[%d] ",k+1);
}
}
}
void main()
{
pAct acts=initActs();
greed(acts);
getchar();
}
算法导论 活动选择问题(贪婪-最早结束)
最新推荐文章于 2021-08-26 19:39:59 发布