法一:
int max(const int a[], int n) {
if (n == 1) return 0;
int p = max(a + 1, n - 1);
return a[0] > a[p + 1] ? 0 : p + 1;
}
法二:
int MaxIndex2(int* A,int n)
{
if(n==1)
return 0;
int mid=n/2;
int left=MaxIndex(A,mid);
int right=MaxIndex(A+mid,n-mid);
return A[left] > A[right+mid]?left : right+mid;
}