binarySearchBy<E, K> function
int
binarySearchBy<
E, K>( - List<E> sortedList,
- K keyOf(
- E element
),
- int compare(
- K,
- K
),
- K value, [
- int start = 0,
- int? end,
])
Implementation
int binarySearchBy<E, K>(
List<E> sortedList,
K Function(E element) keyOf,
int Function(K, K) compare,
K value, [
int start = 0,
int? end,
]) {
end = RangeError.checkValidRange(start, end, sortedList.length);
var min = start;
var max = end;
final key = value;
while (min < max) {
final mid = min + ((max - min) >> 1);
final element = sortedList[mid];
final comp = compare(keyOf(element), key);
if (comp == 0) return mid;
if (comp < 0) {
min = mid + 1;
} else {
max = mid;
}
}
return -min - 1;
}