boundit
Version:
🔍 JavaScript and TypeScript implementation of lower_bound and upper_bound for efficient data searching.
52 lines (49 loc) • 1.01 kB
JavaScript
// src/binarySearch.ts
var binarySearch = (array, target) => {
let left = 0;
let right = array.length - 1;
while (left <= right) {
const mid = left + Math.floor((right - left) / 2);
if (array[mid] === target) {
return mid;
} else if (array[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
};
// src/lowerBound.ts
var lowerBound = (array, target) => {
let left = 0;
let right = array.length;
while (left < right) {
const mid = left + Math.floor((right - left) / 2);
if (array[mid] < target) {
left = mid + 1;
} else {
right = mid;
}
}
return left;
};
// src/upperBound.ts
var upperBound = (array, target) => {
let left = 0;
let right = array.length;
while (left < right) {
const mid = left + Math.floor((right - left) / 2);
if (array[mid] <= target) {
left = mid + 1;
} else {
right = mid;
}
}
return left;
};
export {
binarySearch,
lowerBound,
upperBound
};