What does this program print?
JavaScript
function lowerBound(values, target) {
let low = 0;
let high = values.length;
while (low < high) {
const middle = low + Math.floor((high - low) / 2);
if (values[middle] < target) low = middle + 1;
else high = middle;
}
return low;
}
const values = [10, 10, 20, 40];
console.log([10, 25, 50].map((target) => lowerBound(values, target)));