Медленно и подробно: быстрая сортировка
Пройдём задачу шаг за шагом — такой формат удобен для первого знакомства с алгоритмами.
Задача
Реализовать быструю сортировку — один из самых известных алгоритмов «разделяй и властвуй».
Решение
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]))
Как это работает
Выбирается опорный элемент, массив делится на три части (меньше, равно, больше), затем части сортируются рекурсивно и склеиваются.
Пример работы
[1, 1, 2, 3, 6, 8, 10]
Сложность
O(n log n) в среднем, O(n²) в худшем случае.
Разбор по шагам
- Шаг 1. Входные данные. Проверяем, что приходит в функцию, и какие значения считаются корректными.
- Шаг 2. Основной цикл. Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
- Шаг 3. Результат. Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.
Читая чужой код, повторите тот же мысленный разбор по шагам — это самый быстрый способ научиться.
Related:
- Частые ошибки при решении: сортировка пузырьком
- Несколько вариантов решения: переворот строки
- Пишем решение с тестами: сортировка пузырьком
- افلام سكس اجنبي روسي
- daleseafoam
- Seduced Teenagers Expose All on Omegle Chat Sessions
- Два подхода: вычисление факториала
- visceratio
- peepingholes
- Типичные ошибки при решении: удаление дубликатов из списка
- kızı zorla yatağa bağlıyor
- Trixie Foopahh Porn: Exclusive OnlyFans Leaks and Nude Videos
- أبو مركوب: معلومات وحقائق عن طائر الشوبل والغراب
- ما هو مد اللين
- Not Enough Milk Artist Porn Comics Gallery | Adult Art
- 迷情诗儿极品XIN奴珍藏版第一期国产情色高清无码成人视频免费在线观看诱惑写真私房福利大尺度美腿丝袜性感美女
- Hotline Miami R34 Adult Gallery - Rule 34 Fetish
- lisina_vip
- 扫 楼
- Несколько вариантов решения: проверка палиндрома
- 冰糖小小酥
- chuubous
- nanmahtwe onlyfans
- Типичные ошибки при решении: проверка скобочной последовательности
- 百合磨豆腐女女激情親嘴高潮影片
- scragboy r34
- Turkish Mature Adult Photos - Twitter Olgun Turk Gallery