算法分析:会场安排问题

算法分析:会场安排问题

算法的设计和描述

  1. 初始化 。共有n个会议,数组B存放开始时间,数组E存放结束时间(按非减序排序);集合A存放问题的解,即所选择的会议集合,会议i如果在集合A中,当且仅当A[i]=true;
  2. 令A【1】=true
  3. 依次扫描每一个会议,如果会议i的开始时间不小于最后一个选人集合A中的会议的结束时间,即将会议i加入集合A中;否则,放弃会议i,继续检查下一个会议。

算法源代码

设会议i的起始时间bi和结束时间ei的数据类型为自定义结构体类型struct time;

 void GreedySelector(int n,struct time B[],struct time E[],bool A[]> {
> int i,j;
> A[1]=true;
> j=1,i=2;  //从会议i开始寻找与会议j相容的会议
> while(i<=n)
> {
> if(B[i]>=E[j]){A[i]=true;j=i;}
> else A[i]=false;
> }
> }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值