活动安排问题
计算活动安排问题的贪心算法
//形参数组b用来记录被选中的活动
void GreedySelector(int n, action a[], bool b[])
{
b[1] = true; //第1个活动是必选的
//记录最近一次加入到集合b中的活动
int preEnd = 1;
for(int i=2; i<=n; i++)
if (a[i].s>=a[preEnd].f)
{
b[i] = true;
preEnd = i;
}
}
贪心算法的理论基础
贪心选择性质
最优子结构性质
贪心算法的求解过程
贪心算法的一般流程
//A是问题的输入集合即候选集合
Greedy(A)