Skip to content

Instantly share code, notes, and snippets.

@hbhutta
Created March 4, 2025 20:57
Show Gist options
  • Select an option

  • Save hbhutta/101ef1b6c3fc785c8ab4dc8a31ad3a3c to your computer and use it in GitHub Desktop.

Select an option

Save hbhutta/101ef1b6c3fc785c8ab4dc8a31ad3a3c to your computer and use it in GitHub Desktop.
Iterative and recursive implementations of binary search
function binarySearch(numbers: number[], target: number): number {
let low: number = 0;
let high: number = numbers.length - 1;
while (low <= high) {
let mid = Math.floor((low + high) / 2);
if (target < numbers[mid]) {
high = mid - 1;
} else if (target > numbers[mid]) {
low = mid + 1;
} else {
return mid;
}
}
return -1;
}
function binarySearchRecursive(numbers: number[], target: number, low: number, high: number): number {
let mid = Math.floor((low + high) / 2);
if (low > high) return -1;
if (target < numbers[mid]) {
return binarySearchRecursive(numbers, target, low, mid - 1);
} else if (target > numbers[mid]) {
return binarySearchRecursive(numbers, target, mid + 1, high)
} else {
return mid;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment