#include #include #include using namespace std; void search(int value, vector v); int search(int value, vector v, int low, int high); int main() { vector vec; for (int i = 0; i <= 9; i++) vec.push_back(10*i); for (int elmt : vec) cout << setw(3) << elmt; cout << endl; search(80, vec); search(42, vec); search(10, vec); } void search(int value, vector v) { cout << endl << "Searching for " << value << endl; int index = search(value, v, 0, v.size()); cout << "Value " << value; if (index >= 0) cout << " found at index " << index << endl; else cout << " not found" << endl; } int search(int value, vector v, int low, int high) { while (low <= high) { int mid = (low + high)/2; cout << " low " << setw(2) << low << " mid " << setw(2) << mid << " high " << setw(2) << high << endl; if (value == v[mid]) return mid; if (value < v[mid]) high = mid - 1; else low = mid + 1; } return -1; }