ds-helpers
Version:
Adding priority queue library for NodeJs/javascript users
21 lines (20 loc) • 443 B
JavaScript
function upperBound(arr, X) {
let mid;
let low = 0;
let high = arr.length;
while (low < high) {
mid = Math.floor((high + low) / 2);
if (X == arr[mid]) {
low = mid + 1;
} else if (X < arr[mid]) {
high = mid;
} else {
low = mid + 1;
}
}
if(low < arr.length && arr[low] <= X) {
low++;
}
return low;
}
module.exports = upperBound;