Binary search is a fast search algorithm that works by dividing a sorted collection in half at each step to locate a target value. It compares the middle element to the target and eliminates half of the remaining elements based on whether the middle element is greater than or less than the target. This process continues recursively on smaller sub-arrays until the target is found or the sub-array is empty, with an average time complexity of O(log n). The pseudocode shows initializing lower and upper bounds and calculating the mid-point to compare to the target at each step until the target is found or not present.