贪心算法用处很多 在活动安排问题中是个很好的列子,

设有n个活动的集合E=[1,2,...,N],其实每个活动使用同一资源,如演唱会。每个活动都有一个开始时间和一个结束时间,这里用si,fi来表示,如果si大于另一个活动的fj,那么叫做活动i和活动j是相容的。这可以安排活动。

核心代码:

 

#include "stdio.h"

 

void GreedySelector(int n , int s[], int f[],bool a[])

{

a[1] =true;//表示能否进行安排活动

int j = 1;

 

for(int i = 2; i <= n; i++)

{

if(s[i] >= f[j]) //如果si(i活动的开始时间) 大于 fj(j活动的结束时间)

{

a[i] = true; j = i;//可以进行安排,且把i赋给j(类似于j++)

}

else

{

a[i] = false;

}

}

}