L, R – правая и левая границы рабочей части массива.

Найден – логическая переменная, в которой будем отмечать факт успешного завершения поиска.

L: = 1, R: =n, Найден: = нет

DO (L≤R)

m: =

IF (am=X) Найден: =да OD FI

IF (am < X) L: = m+1

ELSE R: = m-1

FI

OD

Отметим недостаток этой версии алгоритма. На каждой итерации совершается два сравнения, но можно обойтись одним сравнением. Если в массиве несколько элементов с одинаковым ключом, то эта версия находит один из них. Чтобы найти все элементы с одинаковыми ключами, необходимо просмотреть массив влево и вправо от найденного элемента.