# Understanding binary search (part d571)

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

## Задача

Дан отсортированный список чисел `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://ecency.com/@vojtechurban2724/raperin-y-lmaz-if-a-311c1b) · [спешки](https://articlescad.com/freddy-x-gregory-porn-fnaf-security-breach-gay-rule34-377999.html) · [справа](https://sway.cloud.microsoft/BzPEa7NyrXin86E6) · [arr[mid](https://blogfreely.net/nathannazarov26/vyzivove-doplnky-slovensko) · [return](https://discuss.tchncs.de/post/65444457) · [работает](https://kappa.lol/Fob774) · [времени](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/masha-babko-b3e447.pdf) · [вдвое](https://olindberg.wixsite.com/my-site-1/post/bibabibo) · [работы](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-0a8c39.pdf) · [len(arr](https://hey.xyz/posts/1qtntm9wnzvndwdk6dh) · [тестах](https://statics.pancake.vn/web-media-264/de/29/56/e0/d98a247cc332597d649bff39d6ad17018651be472b0de0a3a9fc5857.pdf) · [памяти](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [слева](https://dirk-schlichting.de/%E9%98%B4%E9%81%93+%E5%9B%BE?f=instapaper) · [каждом](https://statics.pancake.vn/web-media-264/1b/3c/58/f6/b1096041abb2059834349bffa633c11bda474f761319a830aae3316a.pdf) · [диапазон](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/nudist-naturist-pageant-a3fafc.pdf) · [Такой](https://paper.wf/katyawagner98log/tian-ye-li-li-si) · [логарифмическая](https://kristinavarga.wixsite.com/my-site-1/post/gabriela-garcia-videos) · [объяснением](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [число](https://privatebin.devol.it/?21ac7f54750d912c#AckZHamRLFBsmWqdtjJzaXqbGXfiuU2gZ5K29pqVmn1R) · [практикой](https://ecency.com/@lukaskral2261/alissa-p-b9a0e7) · [задачу](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-5d0782.pdf) · [поиска](https://wuchu-pub.com/uploads/20261016/f122f6bf831a658dfa19519607fd3511.pdf) · [перепишите](https://traderjacksfleamarket.net/aryminh?f=instapaper) · [list[int](https://paste2.org/7bn24A6F) · [сокращается](https://privatebin.devol.it/?ab94ee18918b484b#9ybUoznTDxpSVWXj7Hso68DxU6RewMwURFXiKmeQVdty) · [прогоните](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [пример](https://privatebin.devol.it/?db99f789493f6d02#FFpq8nxpqP2JPcZS1QjTXuSA89J7FvNm9vaMbjnN62jv) · [Решение](https://leelaomchery.org/%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BE%D0%B9-%D1%86%D0%B8%D1%80%D0%BA-%D0%BF%D0%BE%D1%80%D0%BD%D0%BE?f=linkcentre) · [вернуть](https://yakihonne.com/article/naddr1qvzqqqr4gupzp5fcxtk75z7evmvcayd7jtwz584vuyu04dhffrx3h2y68lcqnrhjqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykk2e33xumxvdeh94jrwetx956x2v3394skzwfj956rvetyxqcnqwfcv4jrx8ejmpy)

