1 2 3 4 5 6 7 8 9 10 11 12 13 14
| int bs(int a[] ,int l, int r){ if(l==r) return a[l]; if((l+1 == r) && a[l]>=a[r]) return a[l]; if((l+1 == r) && a[l]<a[r]) return a[r]; int m=(l+r)/2; if(a[m] >a[m+1] && a[m] >a[m-1]) return a[m]; if(a[m] >a[m+1] && a[m] <a[m-1]) return bs(a,l,m-1); else return bs(a,m+1,r); }
|