public class BinarySearch {
public int getPos(int[] A, int n, int val) {
if(n<=0) {
return -1;
}
int low = 0;
int high = A.length-1;
while(low <= high) {
int middle = (low + high)/2;
if(val == A[middle]) {
while(middle>0&&A[middle-1]==A[middle]){
middle--;
}
return middle ;
}else if(val < A[middle]) {
high = middle - 1;
}else {
low = middle + 1;
}
}
return -1;
}
}
public int getPos(int[] A, int n, int val) {
if(n<=0) {
return -1;
}
int low = 0;
int high = A.length-1;
while(low <= high) {
int middle = (low + high)/2;
if(val == A[middle]) {
while(middle>0&&A[middle-1]==A[middle]){
middle--;
}
return middle ;
}else if(val < A[middle]) {
high = middle - 1;
}else {
low = middle + 1;
}
}
return -1;
}
}