#include <iostream>
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)
std::cout << "Not found";
else
std::cout << "Found at index: " << index;
}
/*
run:
Found at index: 7
*/