Visualizing Recursion & "Divide and Conquer" approach
Enter a number and click Start Search.
function binarySearch(arr, target, left, right) {
if (left > right) {
return -1; // Not found
}
let mid = Math.floor((left + right) / 2);
if (arr[mid] === target) {
return mid; // Found!
}
else if (arr[mid] > target) {
// Divide: Discard right half
return binarySearch(arr, target, left, mid - 1);
}
else {
// Divide: Discard left half
return binarySearch(arr, target, mid + 1, right);
}
}