#include <stdio.h>
int binarySearch(int array[], int element, int low, int high) {
while (low <= high) {
int mid = low + (high - low) / 2;
if (array[mid] == element)
return mid;
if (array[mid] < element)
low = mid + 1;
else
high = mid - 1;
}
return -1;
}
int main(void) {
int array[] = {3, 4, 6, 8, 9, 10, 12, 20, 27, 30, 31};
int number_to_find = 20;
int index = binarySearch(array, number_to_find, 0, sizeof(array)/sizeof(array[0]));
if (index == -1)
puts("Not found");
else
printf("Found at index: %d", index);
}
/*
run:
Found at index: 7
*/