docs: private static int unsignedBinarySearch(int[] a, int fromIndex, int toIndex, int key,
        Comparator<? super Integer> c) {
      int low = fromIndex;
      int high = toIndex - 1;
  
      while (low <= high) {
        int mid = (low + high) >>> 1;
        int midVal = a[mid];
        int cmp = c.compare(midVal, key);
        if (cmp < 0) {
          low = mid + 1;
        } else if (cmp > 0) {
          high = mid - 1;
        } else {
          return mid; // key found
        }
      }
      return -(low + 1); // key not found.
    }