当前位置:文档之家› 分治算法实验报告

分治算法实验报告

算法分析与设计实验报告
第 1 次实验
if(maxi>maxj)
max=maxi;
else
max=maxj;
if(mini<minj)
min=mini;
else
min=minj;
return;
}
}
srand((unsigned int)time(NULL));
cout << "随机产生的数据(0-100):";
for(int i=0; i<m; i++)
a[i] = rand()%100;
测试结果
附录:完整代码
SelectMaxMin.cpp:
#include <iostream>
#include <ctime>
#include <cstdio>
#include <iomanip>
#include <cstdlib>
using namespace std;
void SelectMaxMin(int *a,int i,int j,int &max,int &min) {
if(i==j)
{
max= a[i];
min =a[i];
return;
}
else
{
int mid=(i+j)/2;
int maxi,maxj,mini,minj;
SelectMaxMin(a,i,(i+j)/2,maxi,mini);
SelectMaxMin(a,((i+j)/2)+1,j,maxj,minj);
if(maxi>maxj)
max=maxi;
else
max=maxj;
if(mini<minj)
min=mini;
else
min=minj;
return;
}
}
int main()
{
clock_t start,end,over;
start=clock();
end=clock();
over=end-start;
start=clock();
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int m;
cout <<"Please input the number : ";
cin>> m;
int a[m];
srand((unsigned int)time(NULL));
cout << "随机产生的数据(0-100):";
for(int i=0; i<m; i++)
a[i] = rand()%100;
for(int i=0; i<m; i++)
cout << a[i] << " ";
cout << endl;
int max,min;
SelectMaxMin(a,0,m-1,max,min);
cout << "max = " << max << endl;
cout << "min = " << min << endl;
end=clock();
printf("The time is %6.3f",(double)(end-start-over)/CLK_TCK); }。

相关主题