1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| int binary_search_f(std::vector<int> &src, int value, int l, int r) { if (l > r) { return -1; }
int mid = (l + r) / 2;
if (value == src[mid]) { return mid; } else if (value > src[mid]) { return binary_search_f(src, value, mid + 1, r); } return binary_search_f(src, value, l, mid - 1); }
int binary_search(std::vector<int> &src, int value) { return binary_search_f(src, value, 0, src.size() - 1); }
|