Binary search starts at the middle of sorted data and eliminates half of it with each check, so it is often far faster than linear search. Efficiency can be measured by counting steps as the input grows. Some problems have no efficient algorithm, so people use heuristics, and some problems are undecidable: no algorithm can always answer them correctly.