# Common mistakes in binary search (part 9435)

Разберём решение и подводные камни — их обычно не видно в готовом коде из учебника.

## Задача

Дан отсортированный список чисел `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) по памяти.


## Частые ошибки

1. **Не обрабатывать крайние случаи.** Пустой ввод, ноль, отрицательные числа — именно там решение чаще всего ломается.
2. **Смешивать типы данных.** Строки и числа ведут себя по-разному; неявное приведение типов — источник неочевидных багов.
3. **Писать код без проверки на маленьких примерах.** Прогоните решение вручную на 2-3 значениях, прежде чем считать задачу решённой.

Заметив такую ошибку в чужом коде, вы уже мыслите как ревьюер.

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

[поиска](https://gal13017.carrd.co/) · [решённой](https://hey.xyz/posts/2j3ynxa7mzr7y9rkqdz) · [неочевидных](https://radicle.network/nodes/seed.cielago.xyz/rad%3Az2bMWj5JXTVSt2ub7bbeF6r1Ye6Ro/issues/6a6ae687bb8a86b55ce54613f888875f67248bf4) · [видно](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [неявное](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-2336c1.pdf) · [меньше](https://wuchu-pub.com/uploads/20261019/40cd18f089a4d9ccca1770c9b84984b0.pdf) · [ломается](https://sway.cloud.microsoft/gTAPKHG38VkzznAb) · [логарифмическая](https://wuchu-pub.com/uploads/20261019/35eac14159dc62002916987dd5e48bdc.pdf) · [return](https://radicle.network/nodes/index.radicle.garden/rad%3Az4VnNPpZZFVgHuZcpNTk5BEZbmiip/issues/002fd24721d43c523f036539bc6d02730081322a) · [крайние](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/2-fa94ec.pdf) · [времени](https://statics.pancake.vn/web-media-264/a3/76/38/42/a417a4006af1ed8a4111c9f28e7f8471498557259d8973b542658dee.pdf) · [памяти](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/lianagood-6d0147.pdf) · [Найти](https://hey.xyz/posts/262n1sg1v3qnrnmkbzw) · [прежде](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/zenci-t-rk-9e8784.pdf) · [считать](https://hansenlucas58.wixsite.com/my-site-1/post/%EC%A0%9C%EB%8B%88-%EB%94%A5%ED%8E%98%EC%9D%B4%ED%81%AC-%EC%98%81%EC%83%81---%EB%B8%94%EB%9E%99%ED%95%91%ED%81%AC-%EC%A0%9C%EB%8B%88%EC%9D%98-%EB%94%A5%ED%8E%98%EC%9D%B4%ED%81%AC-%EC%98%81%EC%83%81) · [Заметив](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/stories-about-weddings-2a519d.pdf) · [Пример](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/marthitha-astorga-nude-7516a7.pdf) · [вернуть](https://news-ctl-posts.hashnode.dev/exploring-palindrome-check-part-67c8) · [len(arr](https://wuchu-pub.com/uploads/20261019/598ab78f9360563e03d691a1ad42cc2e.pdf) · [работы](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [чужом](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/indian-bollywood-xxx-video-9daf7f.pdf) · [маленьких](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [сокращается](https://discuss.tchncs.de/post/65441186) · [скорость](https://radicle.network/nodes/seed.cielago.xyz/rad%3Az2s5mJFuvKwBqUTWsgTMgZQ6vkYKr/issues/500ed1632e9547c90508c427014cd6dec3ed0f29) · [индекс](https://juliaroux804.overblog.fr/2026/10/poppy-playtime-r34.html) · [Задача](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/aleyna-tilkinin-am-31e611.pdf) · [по-разному](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/gcd-tests-mvekg6zv.md)

