Вы находитесь на странице: 1из 5

Бинарный поиск:

поиск элемента в массиве


Урок 1.3.2
На этом уроке_
• Рассмотрим более жизненную задачу поиска
элемента в отсортированном массиве
Задача о поиске элементов
в массиве_
• В функцию передается (без копирования) массив
a = a[0..n-1], состоящий из чисел; также передается
число x

• Известно, что -1000000000 <= a[0] <= a[1] <= … <=


a[n-1] <= 1000000000, а n <= 100000

• Требуется вернуть true, если x присутствует


в массиве, и false иначе
Возможные 1

модификации задач_ 2
3
4
5
ower_bound: найти позицию первого 6
элемента, не меньшего x 7
8
• Решение: вывести число r 9
10
11
upper_bound: найти позицию первого 12
элемента, строго большего x 13
14
• Решение: то же, но с инвариантом a[l] <= x < a[r] 15
16
17
18
19
20
21
22
23
24
25
Итоги_
• Научились искать элемент в отсортированном
массиве за O(log n), а также модификации:
lower_bound, upper_bound

Вам также может понравиться