欢迎来到天天文库
浏览记录
ID:44239827
大小:245.05 KB
页数:13页
时间:2019-10-20
《算法实验报告-袁文亚》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验项目:算法设计与分析实验本科实验报告课程名称:算法设计与分析实验地点:行勉楼C210专业班级:软件1432学号:2014006481学生姓名:袁文亚指导教师:张晓霞2016年4月12日实验一分治法合并排序一、实验目的1.掌握合并排序的基本思想2.掌握合并排序的实现方法3・学会分析算法的时间复杂度4.学会用分治法解决实际问题二、实验内容随机产生一个整型数组,然后用合并排序将该数组做升序排列,要求输出排序前和排序后的数组。三、实验环境程序设计语言:C++编程工具:microsoftvisualstudio2010
2、四、程序代码#include#include#includeusingnamespacestd;intpartition(int*a,intright){inti=leftj=right+l;do{doi++;while(a[i]a[left]);if(i3、returnj;}voidquickSort(int*a,intx,inty){if(x4、a[i]);printf(HH);}cout«endl;quickSort(aAn-l);cout«H输出排序后的“vvnvv”个元素:”;for(i=0;i5、7.进一步多机调度的基本思想和算法设计方法8.学会用贪心法分析和解决实际问题二、实验内容设计贪心算法实现作业调度,要求按作业调度顺序输出作业序列。如已知要处理的作业数n=6,可用机器数m=(l,2,3),各作业所需处理时间为d=(34,22,67,51,10,90),该如何完成作业调度问题。三、实验环境程序设计语言:C++编程工具:microsoftvisualstudio2010四、方法描述和程序代码#include#includeusingnamespacestd;//t6、是各个作业的工作量,n是作业数,m是机器数voidGreedy(intt[],intn,intm);、intflagn二0,flagm二0;//flagn定工作量最大的工作,flagm定工作量最小了机器intM[]={0,0,0,0};//4个机器的工作量for(inti=0;i7、or(intj=0;jM[j]){flagm=j;}}〃工作量最小的机器的值加上剩余工作中工作量最大的工作的值M[flagm]=M[flagm]+t[flagn];〃被选择过的机器时间调为0t[flagn]=0;〃输出本次工作调度情况cout<8、inti=0;i
3、returnj;}voidquickSort(int*a,intx,inty){if(x4、a[i]);printf(HH);}cout«endl;quickSort(aAn-l);cout«H输出排序后的“vvnvv”个元素:”;for(i=0;i5、7.进一步多机调度的基本思想和算法设计方法8.学会用贪心法分析和解决实际问题二、实验内容设计贪心算法实现作业调度,要求按作业调度顺序输出作业序列。如已知要处理的作业数n=6,可用机器数m=(l,2,3),各作业所需处理时间为d=(34,22,67,51,10,90),该如何完成作业调度问题。三、实验环境程序设计语言:C++编程工具:microsoftvisualstudio2010四、方法描述和程序代码#include#includeusingnamespacestd;//t6、是各个作业的工作量,n是作业数,m是机器数voidGreedy(intt[],intn,intm);、intflagn二0,flagm二0;//flagn定工作量最大的工作,flagm定工作量最小了机器intM[]={0,0,0,0};//4个机器的工作量for(inti=0;i7、or(intj=0;jM[j]){flagm=j;}}〃工作量最小的机器的值加上剩余工作中工作量最大的工作的值M[flagm]=M[flagm]+t[flagn];〃被选择过的机器时间调为0t[flagn]=0;〃输出本次工作调度情况cout<8、inti=0;i
4、a[i]);printf(HH);}cout«endl;quickSort(aAn-l);cout«H输出排序后的“vvnvv”个元素:”;for(i=0;i5、7.进一步多机调度的基本思想和算法设计方法8.学会用贪心法分析和解决实际问题二、实验内容设计贪心算法实现作业调度,要求按作业调度顺序输出作业序列。如已知要处理的作业数n=6,可用机器数m=(l,2,3),各作业所需处理时间为d=(34,22,67,51,10,90),该如何完成作业调度问题。三、实验环境程序设计语言:C++编程工具:microsoftvisualstudio2010四、方法描述和程序代码#include#includeusingnamespacestd;//t6、是各个作业的工作量,n是作业数,m是机器数voidGreedy(intt[],intn,intm);、intflagn二0,flagm二0;//flagn定工作量最大的工作,flagm定工作量最小了机器intM[]={0,0,0,0};//4个机器的工作量for(inti=0;i7、or(intj=0;jM[j]){flagm=j;}}〃工作量最小的机器的值加上剩余工作中工作量最大的工作的值M[flagm]=M[flagm]+t[flagn];〃被选择过的机器时间调为0t[flagn]=0;〃输出本次工作调度情况cout<8、inti=0;i
5、7.进一步多机调度的基本思想和算法设计方法8.学会用贪心法分析和解决实际问题二、实验内容设计贪心算法实现作业调度,要求按作业调度顺序输出作业序列。如已知要处理的作业数n=6,可用机器数m=(l,2,3),各作业所需处理时间为d=(34,22,67,51,10,90),该如何完成作业调度问题。三、实验环境程序设计语言:C++编程工具:microsoftvisualstudio2010四、方法描述和程序代码#include#includeusingnamespacestd;//t
6、是各个作业的工作量,n是作业数,m是机器数voidGreedy(intt[],intn,intm);、intflagn二0,flagm二0;//flagn定工作量最大的工作,flagm定工作量最小了机器intM[]={0,0,0,0};//4个机器的工作量for(inti=0;i7、or(intj=0;jM[j]){flagm=j;}}〃工作量最小的机器的值加上剩余工作中工作量最大的工作的值M[flagm]=M[flagm]+t[flagn];〃被选择过的机器时间调为0t[flagn]=0;〃输出本次工作调度情况cout<8、inti=0;i
7、or(intj=0;jM[j]){flagm=j;}}〃工作量最小的机器的值加上剩余工作中工作量最大的工作的值M[flagm]=M[flagm]+t[flagn];〃被选择过的机器时间调为0t[flagn]=0;〃输出本次工作调度情况cout<8、inti=0;i
8、inti=0;i
此文档下载收益归作者所有