二分查找
int rank(int *a, int lo, int hi, int key) {
if (lo > hi)
return -1;
int mid = (lo + hi) / 2;
if (a[mid] > key)
return rank(a, mid + 1, hi, key);
else if (a[mid] < key)
return rank(a, lo, hi - 1, key);
else
return mid;
}