#include <stdio.h>
int recursive_binary_search(int arr[], int left, int right, int to_find) {
if (right >= left) {
int mid = left + (right - left) / 2;
if (arr[mid] == to_find)
return mid;
if (arr[mid] > to_find)
return recursive_binary_search(arr, left, mid - 1, to_find);
return recursive_binary_search(arr, mid + 1, right, to_find);
}
return -1;
}
int main(void)
{
int arr[] = { 2, 3, 6, 7, 12, 15, 17, 19 };
int len = sizeof(arr) / sizeof(arr[0]);
int to_find = 7;
int i = recursive_binary_search(arr, 0, len - 1, to_find);
(i == -1) ? printf("not found\n") : printf("Found at index: %d\n", i);
return 0;
}
/*
run:
Found at index: 3
*/