Â
#include <stdio.h>
int peakvalue(int arr[], int low, int high, int n)
{
int mid = low + (high - low) / 2;
if ((mid == 0 || arr[mid - 1] <= arr[mid]) &&
(mid == n - 1 || arr[mid + 1] <= arr[mid]))
return mid;
else if (mid > 0 && arr[mid - 1] > arr[mid])
return peakvalue(arr, low, (mid - 1), n);
else
return peakvalue(arr, (mid + 1), high, n);
}
int Peak(int arr[], int n)
{
return peakvalue(arr, 0, n - 1, n);
}
int main()
{
int arr[] = {1, 3, 20, 4, 1, 0};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Index of a peak point is %d", Peak(arr, n));
return 0;
}
#ENJOY CODING
Post a Comment
FOR ANY DOUBTS AND ERRORS FEEL FREE TO ASK. YOUR DOUBTS WILL BE ADDRESSED ASAP