previous | start | next

BinarySearchST rank method

    1   
    2   public int rank(final Key key) {
    3       int lo = 0, hi = N-1;
    4       while (lo <= hi) {
    5         int mid = lo + (hi - lo) / 2;
    6         int cmp = key.compareTo(keys[mid]);
    7         if (cmp < 0) {
    8             hi = mid - 1;
    9         } else if (cmp > 0) {
   10             lo = mid + 1;
   11         } else {
   12           return mid;
   13         }
   14       }
   15       return lo;
   16   }

Notes:



previous | start | next