1. public static int rank(int key, int[] a) //a为一个升序数组
    2. {
    3. int lo = 0;
    4. int hi = a.length - 1;
    5. while (lo <= hi)
    6. {
    7. int mid = lo + (hi - lo) / 2;
    8. if (key < a[mid])
    9. hi = mid - 1;
    10. else if (key > a[mid])
    11. lo = mid + 1;
    12. else
    13. return mid;
    14. }
    15. return -1;
    16. }