Разберём решение и сразу накроем его тестами — это хороший стиль работы с кодом.
Задача
Реализовать быструю сортировку — один из самых известных алгоритмов «разделяй и властвуй».
Решение
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²) в худшем случае.
Проверка тестами
Хорошая привычка — проверять решение сразу на нескольких примерах, включая крайние случаи.
assert is_valid(True) is not None # базовая проверка вызова
assert is_valid(False) is not None # и второй случай
Такой минимум уже защищает от случайной ошибки при правках кода.
Тесты вида assert удобны для учебных задач: они короткие, наглядные и не требуют фреймворков.
---
Related:
- Kürt Ifşa Videoları | Türk Türbanlı Anal Sikiş - Kerolay Chaves Peladinha Nua Mostrando Tudo no Privacy - Типичные ошибки при решении: среднее значение списка - A step-by-step look at the Euclidean algorithm for GCD - Медленно и подробно: сортировка пузырьком - Типичные ошибки при решении: переворот строки - Camilla Araujo Leak: OnlyFans Nude Photos and Sex Tape - Türk Çıplak Fotoğraf Twitter – İfşa ve İtiraf Paylaşımları - lustful libertines - enjoybucks - nita starsession - Два способа решения: максимум и минимум списка - Пошаговый разбор: вычисление факториала - chatrouleyye redhead webcam chatroulette adult gallery - قنص طياز تويتر: صور سكس عربية حصرية من تويتر - alizade çıplak - 早晨的月亮粗枝大叶 - jenna foxx nuru - Diva Flawless Nude – Hot OnlyFans Leaked Photos & Pics - Рассматриваем задачу: числа Фибоначчи - Ben10 Rule 34 Adult Comics and Porn Content - 魔女 复仇 之 夜 cg - hipminky
Kommentit