算法设计与分析实验报告:分治算法实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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() )

{

//cout<

Datalen++;

fin>>a[Datalen];

}

fin.close();

intmnum,nnum;

max_min(a,0,Datalen,mnum,nnum);

cout<

end=clock();

printf("The time is %6.3f",(double)(end-start-over)/CLK_TCK); system("pause");

return 0;

}

相关文档
最新文档