Binary Search

This is a searching algorithm performed on sorted arrays. As it divides the entire array into half in every iteration, the runtime is O(logn).

Binary Search
int search(vector<int>& nums, int target) {
    int left = 0;
    int right = nums.size() - 1;
    while (left <= right) {
        int middle = (left + right) / 2;
        if (nums[middle] == target) return middle;
        else if (nums[middle] < target) {
            left = middle + 1;
        }
        else {
            right = middle - 1;
        }
    }
    return -1;
}