# Two ways to solve binary search (part a0c2)

Покажу решение и коротко сравню его с альтернативным подходом.

## Задача

Дан отсортированный список чисел `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/naddr1qvzqqqr4gupzp58elg2t0ugny7kutwzn8p542j26t26k63ucgc5eulvcvmns7008qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkxdnyxyunsctr94jrjcny956xxdf395uxgerp94jk2dp3x43nvwp38quxgy4faet) · [меньше](https://ecency.com/@filipnemec3033/masha-babko-bj-1st-studio-xxx-4e9e65) · [коротко](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [O(log](https://ecency.com/@lukaskral2261/anan-babe-c3d345) · [python](https://discuss.tchncs.de/post/65444573) · [скорости](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-689ff8.pdf) · [скорость](https://articlescad.com/alex-mucci-hot-nudes-sex-videos-italian-model-gallery-385020.html) · [подход](https://kappa.lol/qJrCrq) · [тестах](https://hey.xyz/posts/3qf7m1zrg56kvasrzsq) · [решение](https://exhibit24530.mataroa.blog/blog/kirstentoosweet-porn-leak/) · [ручной](https://rimworld.gallery/m/random/t/16291) · [задачи](https://yakihonne.com/article/naddr1qvzqqqr4gupzqfkm4ways6usp9rva9cxfj7sxunrln76mtyzgk65fhjxvn9qqx6xqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknsctpxgurgwp394jnve3h956rgc3394skxwrz94jrjcm9xy6xxv34xsmnx96hnad) · [Покажу](https://statics.pancake.vn/web-media-264/e3/e5/2c/cd/900de30df8696067ee1af927b6a03844816bc6e4bdc4378c43dbe7f4.pdf) · [библиотеку](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/youstrip-797218.pdf) · [логарифмическая](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/secret-stars-maisie-lisa-82bf62.pdf) · [Задача](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/sieve-oshibki-mvefrde6.md) · [учебной](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [сравню](https://wuchu-pub.com/uploads/20261019/4ab8a347d81fee0d2e1840a02c8c66a2.pdf) · [подходом](https://yakihonne.com/article/naddr1qvzqqqr4gupzpvnw87wapvn59jvha4dhn423zv43uv8fy77qmcm2qd7s8jnwsayxqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkydt9v5enswf595unvepn956rvvry94snsctz94jnge3h8p3nxwtxxumk2wrehc3) · [список](https://privatebin.devol.it/?750e475063d52a0f#DyZXGeryojo8Vh7JPn9VZ8tUDfk11EVhRJbdmZcskT8e) · [рекурсию](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/4k-porn-telegram-channel-865cf5.pdf) · [показывает](https://leelaomchery.org/turk-travesti-porno?f=linkcentre) · [решают](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [list[int](https://ecency.com/@jannovak1369/4-economic-issues-786637)

