目录
实验内容
设有n个活动的集合E={1,2,。。。,n},其中每个活动都要求使用同一个资源,而在同一时刻只能有一个活动能使用这一资源。每一活动都有使用该资源的起始时间si和完成时间fi,且si<fi,如果选择了活动i,则在半开区间[si,fi)内占用资源。
实验目的
根据完成时间进行贪心选择策略,完成时间早的优先安排。对于输入的n个活动起止时间用贪心法给出活动安排方法,使得在该时间段内能安排尽量多的活动。
实验思路
int ActiveManage(int s[],int f[],bool a[],int n)函数功能是n个活动的起始时间和完成时间分别存放在数组s[]和f[],返回给定的时间段内能安排的活动个数。并且第i个活动能否安排存放在数组元素a[i]中,它为1(非0)表示该活动可以安排,为0表示该活动不安排。写主函数main(),实现输入数组s[]和f[],调用ActiveManage函数,并输出能安排的活动编号。
实验代码
// C语言
#include<stdio.h>
#define N 200
void sort(int s[],int f[],int n)//把各个活动的起始时间和结束时间按结束时间递增排序
{
int a,b,i,j;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(f[i]>