# Step-by-step: binary search (part 8cf4)

Пройдём задачу шаг за шагом — такой формат удобен для первого знакомства с алгоритмами.

## Задача

Дан отсортированный список чисел `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. Результат.** Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.

Читая чужой код, повторите тот же мысленный разбор по шагам — это самый быстрый способ научиться.

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

[чисел](https://ownforum.freeflarum.com/d/5330-5330-did-ms-sethi-make-porn-leaked-onlyfans-videos-and-photos) · [каждой](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/mehtap-soykan-porno-4bf09a.pdf) · [Именно](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [первого](https://mojasdl.sk/%EC%A0%9C%EB%8B%88+%EB%94%AE%ED%8E%98%EC%9D%B4%ED%81%AC?f=linkcentre) · [знакомства](https://filmyporno.net/tamil+nadu+aunty+nude+photos?f=instapaper) · [Основной](https://radicle.network/nodes/seed.cielago.xyz/rad%3Azvmd89rEZxLrRQLDPKSQicXoNZaw/issues/aac725d407a8c59f1f043171999ef909a706ae3a) · [алгоритмами](https://team.writefreely.dev/oz936174/amy-ginger-hart-porn-videos-natural-redhead-amateur-nude-sex) · [меньше](https://privatebin.devol.it/?cec255a0d51f4d4b#7Tth6kmS5HFwSbe2RmmMF6dWXNS4J11YEbU7Rh9xaLoh) · [Пройдём](https://rentry.co/ams-cherish-265180) · [Решение](https://yakihonne.com/article/naddr1qvzqqqr4gupzpn5wlpqs94cgrrsq7t8gc6893r2p7v6pnwm30r39uhyqsqw7nrueqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknjvehxqen2wpj95unjep5956rxdf595uxvdr9956rzetpxscxyc3cxf3kymnllv9) · [считаются](https://claramichel400.overblog.fr/2026/10/mikayla-campions-leaked.html) · [while](https://jaflysilve.freeflarum.com/d/2973-2973-anoanochan) · [arr[mid](https://writefreely.ethibox.fr/oz82c64c/tamil-nadu-aunty-nude-photos-real-indian-milf-galleries) · [O(log](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [функцию](https://jaflysilve.freeflarum.com/d/2836-2836-pakistani-teen-porn-gallery-young-model-photos) · [Проверяем](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/solaraeesther-sf-e30681.pdf) · [способ](https://anima2011.eu/loland+models?f=instapaper) · [случаи](https://statics.pancake.vn/web-media-264/83/34/4e/c4/a1346de8790bb4eecb95f23588d9747976fa101cd3814e444825ada6.pdf) · [индекс](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/masha-and-veronika-babko-blow-job-fd71c8.pdf) · [вдвое](https://radicle.network/nodes/seed.pipapo.org/rad%3Az2fBGyaejHPyM6jAa8GTKEGhmXmcQ/issues/8ea6f1c3a4df9c040fb45fe2c56614d90561632c) · [научиться](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-173320.pdf) · [каждом](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [чужой](https://rentry.co/starsessions-lilu-991778) · [происходит](https://markjansen49.wixsite.com/my-site-1/post/%D9%81%D8%AD%D9%84%D8%A7%D9%88%D9%8A) · [какие](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/bigfuc-5d5077.pdf) · [повторите](https://privatebin.devol.it/?0647252d61d8a1bc#tPjJ6T3DVQrFQrZDaQ3hNjJ51nv3ZPHgmTNQPn28zMn) · [быстрый](https://vargaadam30.wixsite.com/my-site-1/post/%E9%87%91-%E6%83%A0%E7%BE%8E)

