# Step-by-step: quicksort (part d115)

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

## Задача

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

## Решение

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

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

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

[list[int](https://news-ctl-posts.hashnode.dev/common-mistakes-in-the-euclidean-algorithm-for-gcd-part-5c4b) · [возвращаемое](https://rentry.co/ghw64ayn) · [следим](https://archive17422.mataroa.blog/blog/ebf-81-db3/) · [элемент](https://articlescad.com/my-step-mom-gives-me-nuru-massage-nina-elle-and-tyler-nixon-388316.html) · [какие](https://rentry.co/y2294ng9) · [рекурсивно](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-fe4b16.pdf) · [quicksort(right](https://yakihonne.com/article/naddr1qvzqqqr4gupzp4l0sna90x8w2tqu4wxs9j809escndk9au9fjtcdsh7kz7n55qyxqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknsvnrxdjxgefk956nqde5956rxvnz94sngdpn94nrwcnyv9nrxvpn8qenws8t88t) · [работает](https://elenamoreau96.wixsite.com/my-site-1/post/dwemra) · [Именно](https://statics.pancake.vn/web-media-264/4f/bd/c7/88/df0a81531fc045e655bb20f035d5eca7c33b37a6543abcb1c42bafd3.pdf) · [задачи](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/kapal-k-yl-porno-ad93fb.pdf) · [понять](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/binary-search-oshibki-mvghelf8.md) · [помогает](https://drop.xtrafrancyz.net/selif/kyiosawf4t.pdf) · [pivot](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/milfokemon-338948.pdf) · [данные](https://radicle.network/nodes/index.radicle.garden/rad%3Az483ewG5TTf4BieBHJb72QQarAN8Y/issues/b5d1e637fade9d5d466750f9ed82500c61237f6d) · [переменных](https://news-ctl-posts.hashnode.dev/exploring-the-sum-of-digits-part-ff75) · [властвуй](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/christi-walks-onlyfans-ab1a10.pdf) · [склеиваются](https://jaflysilve.freeflarum.com/d/4578-4578-brimad) · [включая](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [len(arr](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [значения](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/desi-aunty-peeing-93fcbb.pdf) · [самых](https://rimworld.gallery/m/random/t/16301) · [алгоритмов](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [каждый](https://yakihonne.com/article/naddr1qvzqqqr4gupzpp8camepstt9umfespd72hqusp6dpfs0j0u65q392enhl09f47g4qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknxdf3xumkzve595mrxepk956xxwf5943rsce595mx2vm9xs6nyvfn8q6kyq5eryp) · [лотереей](https://ninamichel227.overblog.fr/2026/10/jav-tr-altyaz-l-t-rk-e-altyaz-l-jav-galeri.html) · [просто](https://olivianovak52.wixsite.com/my-site-2/post/cos%E8%A5%BF%E6%96%BD%E8%87%AA%E6%85%B0) · [случае](https://sway.cloud.microsoft/uaXC4BfQBF6xm6LP) · [Разбор](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/cuckoldart-3df995.pdf) · [работа](https://pen.absturztau.be/oz42cdf3/begum-polat-nude) · [Убеждаемся](https://rentry.co/gallery-336076) · [работы](https://news-ctl-posts.hashnode.dev/a-step-by-step-look-at-anagram-checking-part-79f2)

