Binary search is a more specialized algorithm than sequential search as it
takes advantage of data that has been sorted. The underlying idea of binary
search is to divide the sorted data into two halves and to examine the data
at the point of the split. Since the data is sorted, we can easily ignore
one half or the other depending on where the data we're looking for lies
in comparison to the data at the split. This makes for a much more
efficient search than linear search.

Binary search is used on sorted arrays, but we see it more often when used
with binary search trees (see the trees SparkNote
for more information). Whereas linear search allows us to look for data
in *O*(*n*) time, where *n* is the number of elements being searched, binary
search allows us to do the same search in *O*(*logn*) time, a dramatic speed
enhancement.

Binary search is one of the most common search algorithms and is useful in
most any real world application you might write.