# Two ways to solve binary search (part 3d35)

Разберём решение и посмотрим, как та же задача решается другим способом.

## Задача

Дан отсортированный список чисел `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://yakihonne.com/article/naddr1qvzqqqr4gupzpkdqs2mzta62scwes52nn9k8kv87rnmym49rczq3k7q3xup5kg7uqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkzcfjxsunzd3c956nydn9956rvvty94snjv3494nxgct9vvexvef5x3snq2zdau4) · [слева](https://news-ctl-posts.hashnode.dev/two-ways-to-solve-removing-duplicates-from-a-list-part-f0e0) · [каждого](https://rentry.co/fko-cx-277140) · [решается](https://jaflysilve.freeflarum.com/d/2354-2354-sor-sakhn-at-aaary-at-mshahyr-oanmy-abahy-at-balgod-at-alaaaly-at) · [скорость](https://ecency.com/@karelnovotn6538/t-rk-e-altyaz-l-vey-anne-pornolar-0f4847) · [элемента](https://articlescad.com/tuhsy-382517.html) · [библиотеку](https://paper.wf/katya1987log/dass-257) · [Полезно](https://ninafournier129.overblog.fr/2026/10/grmo-095.html) · [Альтернатива](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [механику](https://paste2.org/a6X7zO1k) · [середина](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [обычно](https://ecency.com/@martinnemec5998/pagal-tissue-lelo-sex-video-07c80e) · [лучше](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/grch-210-a12f84.pdf) · [Задача](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/doodstream-starsessions-olivia-8ebbf0.pdf) · [понимать](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/ekaterina-naturally-8a8534.pdf) · [Отсюда](https://curated59101.mataroa.blog/blog/fruitcake-rule34/) · [первое](https://statics.pancake.vn/web-media-264/03/81/e7/c1/31a9a6bf48c49611eb35155b93d7ed4a4762fd549fddf3e166627eb4.pdf) · [число](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/cookie-run-kingdom-r34-915c4d.pdf) · [одинаковых](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [Найти](https://visuals45251.mataroa.blog/blog/lara-rose-leaks-exclusive-porn-videos-and-onlyfans-content/) · [диапазон](https://kappa.lol/50QAmo) · [target](https://kappa.lol/lNBKTs) · [важно](https://privatebin.devol.it/?9025ede975c7b786#46FobiKo8BGqWHyNUGAuv1B8quFRF636ZtYMVQNQ9XuK) · [другим](https://sway.cloud.microsoft/GMuFQ6tYjenjBW2Z)

