29 lines
893 B
Plaintext
29 lines
893 B
Plaintext
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.binarySearch = void 0;
|
|
function binarySearch(values, searchValue) {
|
|
let low = 0;
|
|
let high = values.length - 1;
|
|
let match;
|
|
while (low <= high) {
|
|
const mid = Math.floor((low + high) / 2);
|
|
const midValue = values[mid];
|
|
if (midValue < searchValue) {
|
|
low = mid + 1;
|
|
}
|
|
else if (midValue > searchValue) {
|
|
high = mid - 1;
|
|
}
|
|
else {
|
|
low = mid;
|
|
high = mid;
|
|
match = mid;
|
|
break;
|
|
}
|
|
}
|
|
const finalLow = Math.max(Math.min(low, high, values.length - 1), 0);
|
|
const finalHigh = Math.min(Math.max(low, high, 0), values.length - 1);
|
|
return { low: finalLow, high: finalHigh, match };
|
|
}
|
|
exports.binarySearch = binarySearch;
|
|
//# sourceMappingURL=binarySearch.js.map |