int binary_search(int *a, int key, int min, int max) {
if (max < min) {
return -1;
}
else {
int mid = (min + max) / 2;
if (a[mid] > key) {
// key is lower
return binary_search(a, key, min, mid - 1);
}
else if (a[mid] < key) {
// key is higher
return binary_search(a, key, mid + 1, max);
}
else {
return mid;
// found the key!
}
}
}
Figure 1: Binary Search Procedure
int main() {
int nums_array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
int len = 12;
int index = binary_search(nums_array, 9, 0, len - 1);
return 0;
}
Figure 2: Searching for the Value 9 Within an Array Using the Binary Search Procedure