mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-09 17:33:55 +00:00
19 lines
433 B
TypeScript
19 lines
433 B
TypeScript
/**
|
|
* @param low inclusive, must be true on predicate function
|
|
* @param high exclusive,
|
|
* @param predicate predicate function
|
|
*/
|
|
export const bsearch = (low: number, high: number, predicate: (mid: number) => boolean): number => {
|
|
while (low < high) {
|
|
const mid = Math.floor((low + high) / 2);
|
|
if (mid === low) break;
|
|
|
|
if (predicate(mid)) {
|
|
low = mid;
|
|
} else {
|
|
high = mid;
|
|
}
|
|
}
|
|
return low;
|
|
};
|