您的位置:首页 > 其它

同时找数组里的最大最小数——分治思想

2014-04-05 17:27 239 查看
#include<iostream>
using namespace std;

void maxMin(int* arr,int p,int r,int &min,int &max)
{
if(p<r)
{
int q = (p+r)/2;
int lmin,lmax,rmin,rmax;
maxMin(arr,p,q,lmin,lmax);
maxMin(arr,q+1,r,rmin,rmax);
min = lmin<rmin?lmin:rmin;
max = lmax>rmax?lmax:rmax;
}
else
{
min = max = arr[p];
}
}
int main()
{
int arr[] = {5,6,8,3,7,9};
int min,max;
int len = sizeof(arr)/sizeof(arr[0]);
maxMin(arr,0,len-1,min,max);
cout<<min<<" "<<max;
getchar();
return 0;
}
思想参考:《编程之美》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐