资源描述:
《太原理工大学算法实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、本科实验报告课程名称:算法设计与分析实验项目:算法设计与分析实验实验地点:致远楼403专业班级:学号:学生姓名:指导教师:2017年3月28日实验一分治法合并排序一、实验目的1.掌握合并排序的基本思想2.掌握合并排序的实现方法3.学会分析算法的时间复杂度4.学会用分治法解决实际问题二、实验内容随机产生一个整型数组,然后用合并排序将该数组做升序排列,要求输出排序前和排序后的数组。三、实验环境程序设计语言:c++编程工具:microsoftvisualstudio2013四、程序代码#include"stdafx.h"#include#
2、include#include"SortTestHelper.h"usingnamespacestd;templatevoidmergeSort(Tarr[],intn){_mergeSort(arr,0,n-1);}templatevoid__mergeSort(Tarr[],intl,intr){if(l>=r)return;intmid=(l+r)/2;__mergeSort(arr,l,mid);__mergeSort(arr,mid+1,r);if(arr[mid]>arr[mid
3、+1])__merge(arr,l,mid,r);}templatevoid__merge(Tarr[],intl,intmid,intr){T*aux=newT[r-l+1];for(inti=l;i<=r;i++)aux[i-l]=arr[i];inti=l,j=mid+1;for(intk=l;k<=r;k++){if(i>mid){arr[k]=aux[j-l];j++;}elseif(j>r){arr[k]=aux[i-l];i++;}elseif(aux[i-l]4、++;}else{arr[k]=aux[j-l];j++;}}delete[]aux;}int_tmain(intargc,_TCHAR*argv[]){intn=10;int*arr=SortTestHelper::generateRandomArray(n,0,n);cout<<"未排序的数组为:";for(intj=0;j<10;j++)cout<5、endl;}#include"stdafx.h"#include#include#includeusingnamespacestd;namespaceSortTestHelper{int*generateRandomArray(intn,intrandL,intrandR){assert(randL<=randR);int*arr=newint[n];for(inti=0;i6、、实验总结一定要先找到递归函数式后,设计递归程序实验二贪心法多机调度一、实验目的1.掌握贪心算法的基本思想2.掌握贪心算法的典型问题求解3.进一步多机调度的基本思想和算法设计方法4.学会用贪心法分析和解决实际问题二、实验内容设计贪心算法实现作业调度,要求按作业调度顺序输出作业序列。如已知n=8,效益p=(35, 30, 25, 20, 15, 10, 5, 1),时间期限 d=(4, 2, 4, 5, 6, 4, 5, 7),求该条件下的最大效益。三、实验环境程序设计语言:c++编程工具:microsoftvisualstudio2013四、方法描述和
7、程序代码#include"stdafx.h"#include"iostream"usingnamespacestd;int_tmain(intargc,_TCHAR*argv[]){doublework[99],time[99],t,w;doubletemp[99],usetemp[99],a,s=0;intA[99];cout<<"作业数为(x<99):"<>w;cout<<"作业收益为:"<>work[i];}cout<<"作业收益:"<8、;i