Een binaire zoekactie, ook wel dichotomiserend zoeken genoemd, is een digitaal schema voor het lokaliseren van een specifiek object in een grote verzameling. Aan elk object in de verzameling wordt een sleutel gegeven. Het aantal sleutels is altijd een macht van 2. Als er bijvoorbeeld 32 items in een lijst staan, zijn die genummerd van 0 tot en met 31 (binair 00000 tot en met 11111). Als er bijvoorbeeld maar 29 items zijn, kunnen ze worden genummerd van 0 tot en met 28 (binair 00000 tot en met 11100), met de nummers 29 tot en met 31 (binair 11101, 11110, en 11111) als dummy sleutels.
Om de zoekopdracht uit te voeren, worden de sleutels in tabelvorm opgesomd. De positie van het gewenste object wordt vergeleken met het punt halverwege de lijst (dat ligt tussen de twee sleutels in het midden van de lijst). Indien de sleutel van het gewenste object kleiner is dan de waarde halverwege, wordt de eerste helft van de lijst geaccepteerd en de tweede helft verworpen. 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+XXXXXXXXOOO | (initial list) |
XXXX+XXX | (first half accepted) |
+XXX | (second half accepted) |
+X | (first half accepted) |
+ | (first half accepted) |