/* bsearch.cpp * Created: 2023-07-10 * Author: Aryadev Chavali */ #include #include #include #include #include #include using std::cin; using std::cout; using std::endl; using std::ostream; using std::string; using std::vector; vector arr; ostream &print_arr(ostream &os) { os << "["; for (size_t i = 0; i < arr.size(); ++i) os << arr[i] << (i == arr.size() - 1 ? "" : ","); return os << "]"; } int bsearch(int n, int l = 0, int u = arr.size() - 1) { int midpoint = ((u + l) / 2); if (l >= u || u <= 0) return -1; int val = arr[midpoint]; if (val == n) return midpoint; else if (val > n) return bsearch(n, l, midpoint - 1); else return bsearch(n, midpoint + 1, u); } int main(void) { std::ifstream input("bsearch.txt"); string line; while (std::getline(input, line)) arr.push_back(std::stoi(line)); std::sort(std::begin(arr), std::end(arr)); string inp; cout << "Enter number to search: "; cin >> inp; int to_search = std::stoi(inp); cout << bsearch(to_search) << endl; return 0; }