# Step-by-step: quicksort (part 4c1b)

Медленный разбор помогает понять код, а не просто скопировать его.

## Задача

Реализовать быструю сортировку — один из самых известных алгоритмов «разделяй и властвуй».

## Решение

```python
def quicksort(arr: list[int]) -> list[int]:
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quicksort(left) + middle + quicksort(right)


print(quicksort([3, 6, 8, 10, 1, 2, 1]))
```

## Как это работает

Выбирается опорный элемент, массив делится на три части (меньше, равно, больше), затем части сортируются рекурсивно и склеиваются.

## Пример работы

```text
[1, 1, 2, 3, 6, 8, 10]
```

## Сложность

O(n log n) в среднем, O(n²) в худшем случае.


## Разбор по шагам

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

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

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

[разбор](https://statics.pancake.vn/web-media-264/0b/e1/f3/5f/aa153d6d85ebbf49b9d9e11edc110d1927975097e510a79a64425070.pdf) · [соответствует](https://news-ctl-posts.hashnode.dev/two-approaches-to-the-caesar-cipher-part-6fcc) · [переменных](https://blog.spikyhair.club/oz4c1a14/3d-ai-hq-big-tits-breast-expansion-redhead-on-bed-solo-pov-wsound-added) · [самый](https://blogfreely.net/igorcollins26/shilpa-sethixnxx-mp9k) · [Пример](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/japon-aldatma-erotik-film-9c7d6c.pdf) · [элемент](https://blog.spikyhair.club/oza7ab90/lilith-berry-leaks-onlyfans-nude-photos-and-gallery) · [функцию](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/digit-sum-dva-sposoba-mvf7cu2b.md) · [Результат](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [Сложность](https://articlescad.com/mavis-first-human-halloween-party-dragon-breath-386571.html) · [Убеждаемся](https://hey.xyz/posts/3r5a28mqj5q13m5fhx6) · [чужой](https://juliapopa97.wixsite.com/my-site-1/post/3d-%E9%87%8C%E7%95%AA) · [шагам](https://discuss.tchncs.de/post/65443404) · [случае](https://stills17823.mataroa.blog/blog/spitreligion/) · [просто](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-be893c.pdf) · [рекурсивно](https://marieroux757.overblog.fr/2026/10/post-0.html) · [сортировку](https://discuss.tchncs.de/post/65444457) · [какие](https://danielhansen23.wixsite.com/my-site-1/post/%E5%B0%8F%E8%93%9Dgv%E5%90%8C%E5%BF%97%E8%A7%86%E9%A2%91%E8%B5%84%E6%BA%90%E7%A0%B4%E8%A7%A3%E7%89%88%E4%B8%8B%E8%BD%BD) · [происходит](https://privatebin.devol.it/?c54c14a2485897f9#8CWBs3Uoyh929mXKw1absMkx7HwBAS28DM6hgFFD2KeJ) · [итерации](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g)

