算法设计与分析实验报告:分治算法实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法分析与设计实验报告
第 1次实验
附录:完整代码
#include
#include
#include
#include
using namespace std;
voidmax_min(int *array,intl,intr,int&nmax,int&nmin) {
if(l==r)//数组只有一个元素时
{
nmax = array[l];
nmin = array[l];
return;
}
if(l+1 == r)//数组有两个元素时,比较大小并赋值 {
if(array[l]>=array[r])
{
nmax = array[l];
nmin = array[r];
return ;
}
else if(array[l] { nmax = array[r]; nmin = array[l]; return ; } } int m = (l+r)/2; intrmax,rmin; max_min(array,l,m,rmax,rmin);//递归求左边的最小值 intlmax,lmin; max_min(array,m,r,lmax,lmin);//递归求右边的最大值 nmax = max(lmax,rmax); nmin = min(lmin,rmin); } int main () { inti,j=0; double k=0.0; clock_tstart,end,over; start=clock(); end=clock(); over=end-start; start=clock(); //my test ofstreamfout("b.txt"); int r; for(int bb=0;bb<=100000;bb++) { r = rand(); //cout<< r< fout<< r < } fout.close(); int a[100000]; ifstream fin("b.txt"); intdd,Datalen=-1; while( ! fin.eof() ) {