// GOOD ✅ O (log n)
function binarySearch(arr, value, left, right) {
while (left <= right) {
let mid = Math.floor((left + right) / 2);
if (arr[mid] === value) return mid;
if (arr[mid] < value) left = mid + 1;
else right = mid - 1;
}
return -1;
}
const sortedArray = [1, 3, 5, 7, 9, 11, 13];
console.log(binarySearch(sortedArray, 7, 0, sortedArray.length - 1)); // Output: 3
Ly8gR09PRCDinIUgTyAobG9nIG4pCmZ1bmN0aW9uIGJpbmFyeVNlYXJjaChhcnIsIHZhbHVlLCBsZWZ0LCByaWdodCkgewogICAgd2hpbGUgKGxlZnQgPD0gcmlnaHQpIHsKICAgICAgICBsZXQgbWlkID0gTWF0aC5mbG9vcigobGVmdCArIHJpZ2h0KSAvIDIpOwogICAgICAgIGlmIChhcnJbbWlkXSA9PT0gdmFsdWUpIHJldHVybiBtaWQ7CiAgICAgICAgaWYgKGFyclttaWRdIDwgdmFsdWUpIGxlZnQgPSBtaWQgKyAxOwogICAgICAgIGVsc2UgcmlnaHQgPSBtaWQgLSAxOwogICAgfQogICAgcmV0dXJuIC0xOwp9CmNvbnN0IHNvcnRlZEFycmF5ID0gWzEsIDMsIDUsIDcsIDksIDExLCAxM107CmNvbnNvbGUubG9nKGJpbmFyeVNlYXJjaChzb3J0ZWRBcnJheSwgNywgMCwgc29ydGVkQXJyYXkubGVuZ3RoIC0gMSkpOyAvLyBPdXRwdXQ6IDMK