UNPKG

boundit

Version:

🔍 JavaScript and TypeScript implementation of lower_bound and upper_bound for efficient data searching.

52 lines (49 loc) 1.01 kB
// 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 };