Finding the peak element in the mountain array using binary search.
(Data Structures and Algorithms)
#include<iostream>
using namespace std;
void MountSearch (int arr[], int size )
{
int start = 0, end = size-1;
int index = 0;
for(int mid = start + (end-start)/2; start <= end; mid = start + (end-start)/2 )
{
if(arr[mid-1]<arr[mid] && arr[mid]>arr[mid+1])
{
index = mid;
break;
}
else if(arr[mid]<arr[mid+1])
{ start = mid+1; }
else if(arr[mid-1]>arr[mid])
{ end = mid; }
}
cout<<"The index of the peak is: "<<index;
}
int main ()
{
int arr[9] = {0,1,2,4,5,3,2,1,0};
MountSearch(arr,9);
return 0;
}
Comments
Post a Comment