public class MagicIndex {
// perform modified binary search
public int search(int[] A) {
int l= 0;
int r = A.length-1;
while(l+1<r){
int mid = l+(r-l)/2;
if(A[mid]==mid) return mid;
else if(A[mid]<mid) l=mid;
else r=mid;
}
return -1;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] A = { -1, 0, 1, 2, 4, 10 };
MagicIndex m = new MagicIndex();
System.out.println("Magic index " + m.search(A));
}
}