fork download
  1.  
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. int findPeak(int a[],int low,int high,int n)
  6. {
  7.  
  8. int mid=low+(high-low)/2;
  9.  
  10.  
  11. if((mid==0 ||a[mid-1]<=a[mid]) && (mid==n-1|| a[mid+1]<=a[mid])) return mid;
  12.  
  13. else if(mid>0 && a[mid-1]>a[mid]){
  14. return findPeak(a,low,mid-1,n);
  15. }
  16. else return findPeak(a,mid+1,high,n);
  17.  
  18.  
  19. }
  20. int main()
  21. {
  22. int a[]={0,6,8,5,7,9};
  23. int n=6;
  24. cout<<"Peak value is index:"<<findPeak(a,0,n-1,n)<<endl;
  25.  
  26. return 0;
  27. }
Success #stdin #stdout 0.01s 5236KB
stdin
Standard input is empty
stdout
Peak value is index:2