binarySearch method

int binarySearch(
  1. dynamic x
)

Implementation

int binarySearch( x ) {
  final dist = distribution;
  int start = 0;
  int end = dist!.length - 1;
  int index = - 1;

  while(start <= end){
    final mid = ( ( start + end ) / 2 ).ceil();

    if ( mid == 0 || dist[ mid - 1 ] <= x && dist[ mid ] > x ) {
      index = mid;
      break;
    }
    else if ( x < dist[ mid ] ) {
      end = mid - 1;
    }
    else {
      start = mid + 1;
    }
  }

  return index;
}