#include using std::cout; using std::endl; using std::ostream; int bin_test(int ar[], int arsize, int desired_value); int bin_recurs(int ar[], int desired_value, int lo, int hi); int main() { int ar[10] = {10, 20, 30, 40, 50, 60, 70}; int arsize = 7; int result; bin_test(ar, 7, 30); bin_test(ar, 7, 32); bin_test(ar, 7, 10); bin_test(ar, 7, 70); bin_test(ar, 7, 8); bin_test(ar, 7, 72); return 0; } // *********************************** int bin_test(int ar[], int arsize, int desired_value) { int result; cout << "searching for " << desired_value << endl; result = bin_recurs(ar, desired_value, 0, arsize - 1); if (result == -1) cout << desired_value << " is not in array" << endl << endl; else cout << desired_value << " is at slot " << result << endl << endl; return 0; } int bin_recurs(int ar[], int desired_value, int lo, int hi) { int mid; cout << "entering bin_recurs from " << lo << " to " << hi << endl; if (hi < lo) return(-1); mid = (lo + hi)/2; if (ar[mid] == desired_value) return(mid); if (desired_value < ar[mid]) return bin_recurs(ar, desired_value, lo, mid-1); else return bin_recurs(ar, desired_value, mid+1, hi); }