#include <stdio.h>
#define LEN 10
int binary_search(int arr[], int n, int start, int end);
int main(void)
{
int idx, start, end;
int arr[LEN] = { 2, 5, 7, 8, 9, 12, 45, 78, 98, 100 };
start = 0;
end = LEN - 1;
idx = binary_search(arr, 45, start, end);
if (idx != -1)
printf("Found: arr[%d] = %d", idx, arr[idx]);
else
printf("Not Found");
return 0;
}
int binary_search(int arr[], int n, int start, int end)
{
int mid;
if (start > end)
return -1;
mid = (start + end) / 2;
if (n == arr[mid])
return (mid);
else if (n < arr[mid])
binary_search(arr, n, start, mid - 1);
else
binary_search(arr, n, mid + 1, end);
}
/*
run:
Found: arr[6] = 45
*/