public static int rank(int key,int[] a){ int lo=0; int hi=a.length-1; while (lo<=hi){ int mid = lo+(hi - lo) / 2; if (key<a[mid]) { hi = mid-1; } else if (key>a[mid]) { lo = mid+1; } else { return mid; } } return -1; }