|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
What is Binary Search
When learning linear search,
you were asked to perform an exercise with
a phone book. Go get the phonebook again. Let's say we're looking for the
name 'John Smith'. Open up the phone book approximately half way and look
at the name at the top of the page. What does it say? Probably a name that
begins with an 'M' or some letter in that vicinity. Now think to yourself,
does Smith come before or after this in the phonebook? After, right? So
you can ignore the entire first half of the phone book. Now open the
remaining half about half way. You're probably somewhere near the 'T's.
Does Smith come before or after 'T' in the phonebook? Before. So you can
ignore the latter half. Continue doing this until you find the name for
which you're looking.
What you've just done is a binary search. Binary search involves
binary decisions, decisions with two choices. At each step in the
process you can eliminate half of the data you're searching. This is the
way humans look up most information in big volumes, such as a phonebook or a
dictionary. We guess a place in the middle of the book, then move forward
or backward depending on the location you're at relative to the location of
what you're looking for. This works because all of the data is sorted,
in alphabetical order in the case of a phonebook or dictionary.
Binary search is much faster than linear search for most data sets. If you
look at each item in order, you may have to look at every item in the data
set before you find the one you are looking for. With binary search, you
eliminate half of the data with each decision. If there are n items, then
after the first decision you eliminate n/2 of them. After the second
decision you've eliminated 3n/4 of them. After the third decision you've
eliminated 7n/8 of them. Etc. In other words, binary search is O(logn).
You can see that for a large data set, binary search would be much better
than linear search.
![]()
Figure 1.1: Rate of Growth: n vs log(n)
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contact Us | Privacy Policy | Terms and Conditions | About
©2006 SparkNotes LLC, All Rights Reserved.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||