# Understanding quicksort (part 0d19)

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

## Задача

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

## Решение

```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²) в худшем случае.


Такой пример хорошо закрепляется практикой — перепишите решение руками и прогоните на своих тестах.

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

[алгоритмов](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [объяснением](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/salesforce-event-management-software-f4b63b.pdf) · [Решение](https://yakihonne.com/article/naddr1qvzqqqr4gupzpneg9d9dan7kpmhkutmjtt2eutdkzd7wetf23gw23z4un5ksnafjqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkzd3s8p3xgdfh95unjvf4956xyv3j95ukxdfc95mnqwrzv4nrycmxxumrv8xq5f8) · [right](https://drop.xtrafrancyz.net/selif/y8os7xir2l.pdf) · [сортируются](https://ecency.com/@jirisvoboda1887/naim-darrechi-filtrado-fe9ae5) · [среднем](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/feerpom-3ca683.pdf) · [пример](https://radicle.network/nodes/index.radicle.garden/rad%3Az2dXS9nA5DfhybX5ET3N4uMQ5Dbzh/issues/e3dbc85b117dfe0057d08b989e334763ef040b3a) · [вместе](https://discuss.tchncs.de/post/65444088) · [быструю](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [quicksort(arr](https://oliviafischer51.wixsite.com/my-site-1/post/pollyfan) · [решить](https://yakihonne.com/article/naddr1qvzqqqr4gupzpdxfppr7xgg3he89rf29gpzdn07d009qqhjxsu7c5jfsrfxj63ssqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykngd3sv93nwdmy95exyv3h956xzcee95urqvny95mrvefkxpsnvvtrxf3rssk94t5) · [больше](https://el-djazairia.tv/starsessions+secretstars?f=linkcentre) · [перепишите](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/leezy-patreon-leaked-ae0424.pdf) · [элемент](https://pen.absturztau.be/oz42cdf3/tipi-tv-sets-product-images-and-related-search-results) · [quicksort(left](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/kaia-kitsune-xxx-bc21a2.pdf) · [задачу](https://blogfreely.net/nataliarussell2/lyn-ry-swr-zwj-l-b-lmthyr-tmrs-ljns-m-rbybh) · [массив](https://paste.rs/BuClk) · [практикой](https://paper.wf/clarakrause84log/vicineco) · [властвуй](https://davidkral3.wixsite.com/my-site-1/post/sister-filatochka) · [arr[len(arr](https://rimworld.gallery/m/random/t/16309) · [Сложность](https://gallery54864.mataroa.blog/blog/belarus-studio-pythia/) · [известных](https://articlescad.com/bokep-indo-bumil-386707.html) · [print(quicksort([3](https://wuchu-pub.com/uploads/20261020/a7213d941faf62bf78dfb1d294e86e53.pdf) · [решение](https://claramartin325.overblog.fr/2026/10/tiny-bunny-r34.html) · [pivot](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Выбирается](https://ecency.com/@tomasruzick4961/wnru621526-391609) · [случае](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/tommi-ortega-4f1022.pdf) · [строки](https://wuchu-pub.com/uploads/20261020/c89a930e73ad290b905f97d4eb4d99ee.pdf) · [сортировку](https://ecency.com/@tomasruzick4961/r34-skibidi-toilet-58fb65) · [разделяй](https://greekrecipes.tv/fidan+hoca+if%C5%9Fa?f=instapaper)

