Изменения

Перейти к: навигация, поиск

Целочисленный двоичный поиск

1 байт добавлено, 00:50, 29 мая 2012
Код
== Код ==
l := 0; // l - левая граница r := n + 1; // r - правая граница
while (l < r - 1) // запускаем цикл
begin m := (l + r) div 2; // m - середина области поиска if (a[m] < k) then l := m ; else r := m; // сужение границ end; if (a[r] = k) then result := r ; // выводим найденный индекс else result := -1; // если элемент не найден возвращаем -1
В случае правостороннего поиска изменится знак сравнения при сужении границ на (a[m] <= k), также при выводе найденного индекса, мы сравниваем искомый элемент k с a[l].
38
правок

Навигация