#include <stdio.h>
int binary_search(int arr[], int right, int to_find) {
int left = 0;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == to_find)
return mid;
if (arr[mid] < to_find)
left = mid + 1;
else
right = mid - 1;
}
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 = binary_search(arr, len - 1, to_find);
(i == -1) ? printf("not found\n") : printf("Found at index: %d\n", i);
return 0;
}
/*
run:
Found at index: 3
*/