public int binarySearch()

in core/src/main/java/gnu/trove/TIntArrayList.java [690:716]


  public int binarySearch(int value, int fromIndex, int toIndex) {
    if (fromIndex < 0) {
      throw new ArrayIndexOutOfBoundsException(fromIndex);
    }
    if (toIndex > _pos) {
      throw new ArrayIndexOutOfBoundsException(toIndex);
    }

    int low = fromIndex;
    int high = toIndex - 1;

    while (low <= high) {
      int mid = (low + high) >> 1;
      int midVal = _data[mid];

      if (midVal < value) {
        low = mid + 1;
      }
      else if (midVal > value) {
        high = mid - 1;
      }
      else {
        return mid; // value found
      }
    }
    return -(low + 1);  // value not found.
  }