# Understanding binary search

Предлагаю решить задачу вместе: без спешки, с объяснением каждой строки.

## Задача

Дан отсортированный список чисел `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://kappa.lol/4l8qNX) · [return](https://jaflysilve.freeflarum.com/d/24094-24094-nymphetangel-nude-onlyfans-photos-and-erotic-gallery) · [руками](https://mega.nz/file/C4gUWbBK#YzQ1c_8yrbLQo1PSpdSQ6xNpJjUsUSEsLUWPWnu9WfU) · [элемента](https://www.sendspace.com/file/izgy9lua) · [задачу](https://dev.to/devnote2319/logging-pipeline-runs-without-noise-y0hcl-aj) · [тестах](https://ymcatexasyg.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/climax-family-full-of-mistresses-0200dc.pdf) · [вместе](https://dev.to/devnote2319/logging-pipeline-runs-without-noise-owga6-4o5l) · [вдвое](https://laurafournier272.overblog.fr/2026/11/taytl-liseli-porno.html) · [вернуть](https://nikolaybrown37.wixsite.com/my-site-1/post/elephant-hentai) · [своих](https://u.pcloud.link/publink/show?code=XZ5NffJZrcUIuq27zvpbqIylwmSDXL1JPnnk) · [прогоните](https://kappa.lol/EwWXlK) · [практикой](https://olivianovak52.wixsite.com/my-site-2/post/crosbaaaby-nude-photos-leaks-and-solo-gallery-set) · [Отсюда](https://rentry.org/belybelinda-856995) · [python](https://blog.spikyhair.club/oz1e9300/bocil) · [каждой](https://ecency.com/@jakubkolar5653/post-393835) · [Решение](https://sway.cloud.microsoft/uaXC4BfQBF6xm6LP) · [len(arr](https://dev.to/devnote2319/keeping-link-blocks-stable-across-platforms-ntgpa-1p8h) · [число](https://dev.to/devnote2319/scheduling-retries-in-a-publishing-pipeline-qdl63-5pm) · [работает](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/2010-volvo-c30-reliability-619bf9.pdf) · [отсортированный](https://dev.to/devnote2319/account-pools-for-multi-platform-posting-xfq31-3hl4) · [работы](https://rentry.org/elle-goodman-565147) · [диапазон](https://writefreely.ethibox.fr/oz8c3724/ts-xiao-ye-jiang-asian-ts-ladyboy-porn-with-cumshot) · [строки](https://writefreely.ethibox.fr/oz82c64c/seks-bulmacasi) · [решить](https://dev.to/devnote2319/account-pools-for-multi-platform-posting-168el-1d7i)

