Linear vs binary search
Linear search scans every element — O(n), works on any data. Binary search repeatedly halves a sorted range — O(log n) — but requires sorted, randomly-accessible input. The classic bug is the boundary condition (low <= high vs low < high) and the mid calculation (use low + (high-low)/2 to avoid overflow in fixed-width languages).
Binary search on the answer
Many 'minimize/maximize X subject to a monotonic feasibility check' problems (e.g. 'minimum capacity to ship in D days') are solved by binary-searching the answer space and testing feasibility — a powerful, frequently-tested generalization.