Pro jednoduchost předpokládejme, že na každé stránce je právě jeden záznam a že umíme v konstantním čase otevřít seznam na určité stránce (což u reálné knihy asi není ve skutečnosti pravda).
1. Po celou dobu si pamatuj interval prohledávaného úseku seznamu: dolni_mez (první strana daného intervalu) a horni_mez (poslední strana daného intervalu). Na začátku je pokrývá interval celý seznam, tzn. dolni_mez:=první strana seznamu; horni_mez:=poslední strana seznamu. 2. Dokud (dolni_mez < horni_mez) 3. Otevři seznam na prostřední stránce intervalu (tzn. dolní celá část z [(dolni_mez + horni_mez) / 2]). 4. Je-li tam hledaný záznam, pak vypiš jeho telefonní číslo, zavři seznam a skonči (úplně). 5. Není-li tam hledaný záznam, pak se podívej, zda by měl být dle abecedy dříve v seznamu, či později: 6. Pokud dříve, tak horni_mez:=aktuální strana-1. 7. Pokud později, tak dolni_mez:=aktuální strana+1. 8. Pokud dolni_mez = horni_mez a na této stránce je hledaný záznam, pak vypiš jeho telefonní číslo, zavři seznam a skonči (úplně). 9. Jinak vypiš, že hledané číslo není v seznamu.
Kdo byste našel v nějakém z těchto programů chybu, dejte mi to vědět - můžete tak získat bonusové body (1 chyba ≈ 5 bodů). ;)