UNPKG

p-queue-compat

Version:
23 lines (22 loc) 598 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = lowerBound; // Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound // Used to compute insertion index to keep queue sorted after insertion function lowerBound(array, value, comparator) { let first = 0; let count = array.length; while (count > 0) { const step = Math.trunc(count / 2); let it = first + step; if (comparator(array[it], value) <= 0) { first = ++it; count -= step + 1; } else { count = step; } } return first; }