# Step-by-step: binary search (part ceab)

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

## Задача

Дан отсортированный список чисел `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. **Шаг 1. Входные данные.** Проверяем, что приходит в функцию, и какие значения считаются корректными.
2. **Шаг 2. Основной цикл.** Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
3. **Шаг 3. Результат.** Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.

Когда каждый шаг понятен, доработка решения перестаёт быть лотереей.

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

[while](https://sway.cloud.microsoft/uk3W8HErr2iKXHb8) · [Пример](https://adamnowak48.wixsite.com/my-site-1/post/%D9%86%D9%8A%D9%83-%D8%B2%D9%86%D8%AC%D9%8A-%D9%85%D8%AC%D9%85%D9%88%D8%B9%D8%A9-%D8%A5%D8%A8%D8%A7%D8%AD%D9%8A%D8%A9-%D9%84%D9%84%D8%B0%D9%83%D9%88%D8%B1-%D8%A7%D9%84%D8%B3%D9%88%D8%AF-%D9%88%D8%A7%D9%84%D9%86%D8%B3%D8%A7%D8%A1-%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9) · [каждом](https://jaflysilve.freeflarum.com/d/3503-3503-vermeil-in-gold-wallpaper) · [середина](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/nodoboko-445ad9.pdf) · [O(log](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/jonflashtv-331f49.pdf) · [корректными](https://discuss.tchncs.de/post/65444086) · [времени](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/tattedslvt-onlyfans-872ef7.pdf) · [логарифмическая](https://jaflysilve.freeflarum.com/d/3421-3421-melissa-benoist-deepfake-consent-and-image-rights) · [диапазон](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-4a46c1.pdf) · [элемента](https://laurabarbosa70.wixsite.com/my-site-1/post/alisa-hot-sexy-adult-photo-gallery-and-exclusive-nude-content) · [Решение](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [возвращаемое](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/lara-rose-leaked-nudes-f8c978.pdf) · [список](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [изменениями](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/k-yl-plak-8f5207.pdf) · [соответствует](https://articlescad.com/jpdamsel-gallery-japanese-damsel-in-distress-costume-photos-and-athleisure-looks-385036.html) · [Разложим](https://articlescad.com/tattedslvt-onlyfans-384952.html) · [справа](https://discuss.tchncs.de/post/65444246) · [задачи](https://0p.pics/hanna+punzel?f=instapaper) · [итерации](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/loredanag30-054fdc.pdf) · [Когда](https://discuss.tchncs.de/post/65444565) · [len(arr](https://yakihonne.com/article/naddr1qvzqqqr4gupzpgpeefgaav8w0xck4lqgw99jer52w0rqfyqsx97jddwn3j3sszuwqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknzefkvgensvrz95mrwd34956x2d3k94snwe3h95mx2d33x5erqwrzv5urqqr3qsh) · [работа](https://kappa.lol/pUVOvg) · [сокращается](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [меньше](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/did-ms-sethi-make-porn-179e74.pdf) · [случаи](https://radicle.network/nodes/seed.pipapo.org/rad%3Az4HVGRyM39W3dBShuhhnT77AqpewH/issues/87bc525ee2b03564cc605038c8d93ac019f01f94) · [доработка](https://frames77775.mataroa.blog/blog/mandy-x-chester-rule-34/) · [происходит](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/power-dva-sposoba-mvec4iqk.md) · [Найти](https://articlescad.com/cardi-b-nude-photos-and-videos-from-press-music-video-release-384966.html) · [скорость](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/piona-p-model-944913.pdf) · [python](https://kappa.lol/vmyv72)

