#include
int findMaximum(int arr[], int low, int high)
{
/* Base Case: Only one element is present in arr[low..high]*/
if (low == high)
return arr[low];
if ((high == low + 1) && arr[low] arr[high])
return arr[high];
int mid = (low + high)/2; /*low + (high - low)/2;*/
if ( arr[mid] arr[mid - 1])
return findMaximum(arr, low, mid-1);
else
return findMaximum(arr, mid + 1, high);
}
/* Driver program to check above functions */
int main()
{
int arr[] = {5,4,3,4,5,6,7,8,9};
int n = sizeof(arr)/sizeof(arr[0]);
printf("The minimum element is %d", findMaximum(arr, 0, n-1));
getchar();
return 0;
}