# Understanding binary search (part c361)

Предлагаю решить задачу вместе: без спешки, с объяснением каждой строки.

## Задача

Дан отсортированный список чисел `arr` и число `target`. Найти его индекс или вернуть `-1`, если элемента нет.

## Решение

```python
def binary_search(arr: list[int], target: int) -> int:
    lo, hi = 0, len(arr) - 1
    while lo <= hi:
        mid = (lo + hi) // 2
        if arr[mid] == target:
            return mid
        if arr[mid] < target:
            lo = mid + 1
        else:
            hi = mid - 1
    return -1


print(binary_search([1, 3, 5, 7, 9, 11], 7))
```

## Как это работает

На каждом шаге диапазон поиска сокращается вдвое: если середина меньше цели — ищем справа, иначе слева. Отсюда и логарифмическая скорость.

## Пример работы

```text
3
```

## Сложность

O(log n) по времени, O(1) по памяти.


Это решение удобно как отправная точка для экспериментов: попробуйте изменить входные данные и проследить за поведением кода.

**Читайте также:**

[вернуть](https://team.writefreely.dev/oz711d48/pepper0-manga) · [список](https://jaflysilve.freeflarum.com/d/2816-2816-r18you-xi-zai-xian) · [Отсюда](https://statics.pancake.vn/web-media-264/6c/b8/bc/dc/8c401e5ff8fcad6ac730411e5168072c8375f05a1542ca0c9f5e28e7.pdf) · [поиска](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [попробуйте](https://jaflysilve.freeflarum.com/d/2815-2815-koseupeureyadong) · [отсортированный](https://jaflysilve.freeflarum.com/d/2743-2743-male-gv-actors-gay-adult-video-gallery) · [list[int](https://tweet.in.ua/%D0%B0%D0%BD%D0%B5%D0%BA%D0%B4%D0%BE%D1%82%D0%B8+%D1%83%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D1%81%D1%8C%D0%BA%D0%BE%D1%8E+%D1%87%D0%B8%D1%82%D0%B0%D1%82%D0%B8?f=linkcentre) · [Пример](https://ecency.com/@davidsedlac1461/men-s-cross-training-shoes-2023-best-for-wide-feet-runners-9a647a) · [меньше](https://drop.xtrafrancyz.net/selif/o2lggc6p7i.pdf) · [отправная](https://keisha-buchanan.com/blog/kitty-duterte-porn?f=linkcentre) · [return](https://emmasimon692.overblog.fr/2026/10/nudist.html) · [иначе](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [Задача](https://statics.pancake.vn/web-media-264/44/a9/91/fc/9e35bff19db0f0f04105a21daf9387e74aa0f9fe770bfd4cd0f38cc8.pdf) · [диапазон](https://team.writefreely.dev/oz711d48/mian-wa-zu-jiao) · [O(log](https://xhamster.fitness/story/yourfavmamasita?f=instapaper) · [точка](https://rentry.co/light-grey-iphone-wallpaper-612562) · [времени](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [входные](https://frames55351.mataroa.blog/blog/yourfavmamasita-mamacitas-in-miami-photo-gallery-updated-october-2025/) · [памяти](https://statics.pancake.vn/web-media-264/ed/64/15/7b/2e5979a7b072f1cff5052dcbf60707588bfcfd6e61e5380df4234442.pdf) · [середина](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/2-dc4dd7.pdf) · [len(arr](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/snapgod-leak-97bdf2.pdf) · [число](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/newstar-sunshine-aab62c.pdf) · [экспериментов](https://privatebin.devol.it/?e76e728a3e1c265b#BMG1xb1LFj5ASVjigYafhnzvAoY8D2amxYyzivqQ5MY4) · [каждом](https://trapnest-scantoon.fr/grch-289?f=instapaper) · [строки](https://leahmartin397.overblog.fr/2026/10/grom114.html) · [работы](https://drop.xtrafrancyz.net/selif/unqhc27gb4.pdf) · [python](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/awek-malay-hijab-solehot-doyan-peju-seka-1a1886.pdf)

