** 二分查找 ** 二分查找的数组必须是 有序的; public static int rank(int key, int[] arr){ int lo = 0; int hi = arr.length -1; while(lo <= hi){ int mid = lo + (hi - lo) / 2; if (key < arr[mid]) hi = mid -1; else if (key > arr[mid]) lo = mid +1; else return mid; } return -1; }