A binary search, also called a dichotomizing search, is a digital scheme for locating a specific object in a large set. Each object in the set is given a key. The number of keys is always a power of 2. If there are 32 items in a list, for example, they might be numbered 0 through 31 (binary 00000 through 11111). If there are, say, only 29 items, they can be numbered 0 through 28 (binary 00000 through 11100), with the numbers 29 through31 (binary 11101, 11110, and 11111) as dummy keys.
To conduct the search, the keys are listed in tabular form. The position of the desired object is compared with the halfway point in the list (which lies between the two keys in the center of the list). If the key of the desired object is smaller than the halfway point value, then the first half of the list is accepted and the second half is rejected. If the key of the desired object is larger than the halfway point value, then the second half of the list is accepted and the first half is rejected. The process is repeated, each time selecting half of the list and rejecting the other half, until only one object remains. This is the desired object.
The following list shows an example of a binary search to choose the fifth object in a set of 13 objects. Keys are denoted X; the desired key is denoted by +. Dummy keys are denoted O.
|XXXX+XXX||(first half accepted)|
|+XXX||(second half accepted)|
|+X||(first half accepted)|
|+||(first half accepted)|