Binary Search
Loading editor...
#include <bits/stdc++.h>
using namespace std;
/**
* Perform binary search on a sorted vector<int>.
* @param vec Sorted vector (ascending order).
* @param target Value to locate.
* @return Index of target in vec, or -1 if not found.
*/
int binarySearch(const vector<int> &array, int target) {
int left = 0;
int right = static_cast<int>(array.size()) - 1;
while (left <= right) {
// Prevent overflow for very large indices
int mid = left + ((right - left) >> 1);
int mid_val = array[mid];
if (mid_val == target) {
return mid; // Found
} else if (mid_val < target) {
left = mid + 1; // Search right half
} else {
right = mid - 1; // Search left half
}
}
return -1; // Not found
}
Sorted list of numbers, space-separated.
Number to find.