#include <iostream>
#include <algorithm>
using namespace std;
int MaxR(int a[], int lo, int hi)
{
if (hi == lo)
{
//cout << "1" << endl;
return a[lo];
}
else
{
int mid = (lo + hi ) >> 1;
//cout << mid << endl;
return max(MaxR(a, lo, mid), MaxR(a,mid + 1, hi));
}
}
int main()
{
int arr[] = { 8,6,4,14,5,9 };
int lo = 0;
int hi = 5;
int a = MaxR(arr,lo,hi);
return a;
}
或者把int MaxR(int a[], int lo, int hi)改成int MaxR(int *a, int lo, int hi)也行,求最小值把max改成min就行
#include <iostream>
#include <algorithm>
using namespace std;
int MaxR(int *a, int lo, int hi)
{
if (hi == lo)
{
//cout << "1" << endl;
return a[lo];
}
else
{
int mid = (lo + hi ) >> 1;
//cout << mid << endl;
return max(MaxR(a, lo, mid), MaxR(a,mid + 1, hi));
}
}
int main()
{
int arr[] = { 8,6,4,14,5,9 };
int lo = 0;
int hi = 5;
int a = MaxR(arr,lo,hi);
return a;
}