下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上 西 安 邮 电 大 学 (计算机学院)课内实验报告实验名称: 贪心算法 专业名称: 计算机科学与技术班 级: 学生姓名: 学号(8位): 指导教师: 实验日期: 2014年5月22日1 实验目的及实验环境 实验目的:通过实际应用熟悉贪心算法,并解决会场安排问题、多出最优服务次序问题 实验环境:Visual C+ 6.0二. 实验内容1.会场安排问题. 假设要在足够多的回厂里安排一批活动,并希望使用尽可能少的会场,设计一个有效的贪心算大进行安排(这个问题实际上是注明的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,
2、相应于要找的最小会场数)2.多处最优服务次序问题设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti,1<=i<=n。共有s处可以提供此项服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n个顾客等待服务时间的总和除以n。三 方案设计1、设有n个活动的集合E=1,2,n,其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si <fi 。如果选择了活动i,则它在半开时间区间si, fi)内占用资源。若区间si, fi)与区间sj, fj)不相交
3、,则称活动i与活动j是相容的。也就是说,当sifj或sjfi时,活动i与活动j相容。由于输入的活动以其完成时间的非减序排列,所以算法greedySelector每次总是选择具有最早完成时间的相容活动加入集合A中。直观上,按这种方法选择相容活动为未安排活动留下尽可能多的时间。也就是说,该算法的贪心选择的意义是使剩余的可安排时间段极大化,以便安排尽可能多的相容活动。算法greedySelector的效率极高。当输入的活动已按结束时间的非减序排列,算法只需O(n)的时间安排n个活动,使最多的活动能相容地使用公共资源。如果所给出的活动未按非减序排列,可以用O(nlogn)的时间重排。 1.会场安排问题
4、源代码#include <iostream>#include <vector>#include <algorithm>using namespace std;struct point int t; bool f;bool cmp(point x,point y) return x.t<y.t;int greedy(vector<point> x) int max=0,cur=0,n=x.size(); sort(x.begin(),x.end(),cmp); for(int i=0;i<n;i+) if(xi.f) cur+; els
5、e cur-; if(cur>max) max=cur; return max; int main() vector<point> x; int n,i; point temp; while(cin>>n,n) for(i=0;i<n;i+) temp.f=true; cin>>temp.t; x.push_back(temp); temp.f=false; cin>>temp.t; x.push_back(temp); cout<<greedy(x)<<endl; x.clear(); return 0;2.
6、 多处最优服务次序问题源代码:#include<stdio.h>#include<stdlib.h>main()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)
7、;timewindow = (int *)malloc(serve + 1) * sizeof(int);window = (int *)malloc(serve + 1) * sizeof(int *);for(i = 0; i <= serve;i+) windowi = (int *)malloc(num + 1) * sizeof(int *);printf("请依次输入服务等待时间n");for(i = 1; i <= num;i+) scanf("%d",&arrayi);for(i = 0; i <= serve;
8、i+) timewindowi = 0; for(j = 0; j <= num; j+) windowij = 0;for(i = 1; i <= num; i+)/排序 for(k = i,j = i + 1; j < num; j+) if(arrayj < arrayk) k = j; temp = arrayk; arrayk = arrayi; arrayi = temp;for(i = 1; i <= num; i+) for(k = 1,j = 2; j <= serve;j+) if(timewindowk > timewindowj
9、) 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.五心得体会 通过本次实验,我了解了贪心算法的性质与解题思路。会场安排问题和多出最优服务次序问题很好的利用了贪心算法,我进一步理解了贪心算法的性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3岁儿童孤独症(自闭症)家庭自测题(家长专用、通俗版)
- 中小学网络安全教育主题班会课件(带内容)
- 合规转利润:降本增效全指南(2026)《GBT 39401-2020工业机器人云服务平台数据交换》
- 合规转利润:降本增效全指南(2026)《GBT 39219-2020海水淡化水后处理设计指南》
- 合规转利润:降本增效全指南(2026)《GBT 39140.2-2020金刚石圆锯片用夹紧卡盘 第2部分:建筑施工和土木工程》
- 鲁教版五四学制(2024)九年级上册数学 第三章 反比例函数 单元测试(含答案)
- 2026年浙江省会计从业资格考试会计实务专项训练题库
- 《汽车专业英语》- 材料
- 《商业摄影基础》-附录
- 评判性思维在护理管理的应用
- 2026年秋季学期泰山版(新教材)五年级信息科技上册教学计划
- 2026年秋季开学高中家庭会议家长会课件
- 基于学科逻辑的氧化还原反应-高三二轮
- 2026秋人教PEP版(新教材)小学英语六年级上册(全册)教学设计(附目录p111)
- 4.6.1人体对外界环境的感知 课件(共31张)人教版(2024)八年级上册
- 2026山东发展集团招聘138人笔试参考题库及答案详解
- 《人工智能依赖的数据》教学设计-2026-2027学年苏科版(新教材)初中信息技术九年级全一册
- 部编版五年级上册语文全套预习单(8单元)
- 建筑工程管理专业中级职称理论考试题库
- 和甘伯伯去游河绘本阅读
- 哮喘控制测试评分表(ACT-C-ACT)
评论
0/150
提交评论