C语言会场安排问题贪心算法,贪心算法解决会场安排问题、多处最优服务次序问题(含源代码)...

《贪心算法解决会场安排问题、多处最优服务次序问题(含源代码)》由会员分享,可在线阅读,更多相关《贪心算法解决会场安排问题、多处最优服务次序问题(含源代码)(5页珍藏版)》请在人人文库网上搜索。

1、西 安 邮 电 大 学(计算机学院)课内实验报告实验名称: 贪心算法专业名称: 计算机科学与技术班 级: 学生姓名: 学号(8位): 指导教师: 实验日期: 2014年5月22日1 实验目的及实验环境实验目的:通过实际应用熟悉贪心算法,并解决会场安排问题、多出最优服务次序问题实验环境:Visual C+ 6.0二. 实验内容1.会场安排问题. 假设要在足够多的回厂里安排一批活动,并希望使用尽可能少的会场,设计一个有效的贪心算大进行安排(这个问题实际上是注明的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数)2.多处最优。

2、服务次序问题设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti,1#include #include using namespace std;struct pointint t;bool f;bool cmp(point x,point y)return x.t x)int max=0,cur=0,n=x.size();sort(x.begin(),x.end(),cmp);for(int i=0;imax)max=cur; return max; int main()vector x;int n,i;point temp;while(cinn,n)for(i=0;itemp.t;x.p。

3、ush_back(temp);temp.f=false;cintemp.t;x.push_back(temp);cout#includemain()int *window,*timewindow,*array,num,serve,i,j,k,temp;double min;printf(请输入等待服务人数n);scanf(%d,&num);printf(请输入服务窗口数n);scanf(%d,&serve);array = (int *)malloc(num + 1) * sizeof(int);timewindow = (int *)malloc(serve + 1) * sizeof(in。

4、t);window = (int *)malloc(serve + 1) * sizeof(int *);for(i = 0; i timewindowj)k = j;timewindowk +=arrayi;windowk+windowk0 = arrayi;for(min = 0.0,i = 1; i = serve;i+)for(j = 1; j = windowi0;j+)min += windowij * (windowi0 - j + 1);min /= num;printf(n此方案最优服务次序为%fn,min);getch();4 运行结果1.2.五心得体会通过本次实验,我了解了贪心算法的性质与解题思路。会场安排问题和多出最优服务次序问题很好的利用了贪心算法,我进一步理解了贪心算法的性质:考虑问题时从局部出发,虽然贪心算法不是对所有问题都能得到最优解,但对于大多数问题都能得到最优解。这种方法很容易理解又能很好地使用于实际。并且在自身实际编码的过程中也发现自己所存在的问题,比如总会忽略细节,每一次实验都意味着一次进步,我收获到很多包括知识以外的道理。

你可能感兴趣的:(C语言会场安排问题贪心算法)