binarySearch method
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;
}