pb1a38a600

Step-by-step: quicksort

Nov 11th, 2026
7
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. Step-by-step: quicksort
  2.  
  3. Разложим решение на шаги и объясним, что происходит на каждом из них.
  4.  
  5. Задача
  6.  
  7. Реализовать быструю сортировку — один из самых известных алгоритмов «разделяй и властвуй».
  8.  
  9. Решение
  10.  
  11. ``python
  12. def quicksort(arr: list[int]) -> list[int]:
  13. if len(arr) <= 1:
  14. return arr
  15. pivot = arr[len(arr) // 2]
  16. left = [x for x in arr if x < pivot]
  17. middle = [x for x in arr if x == pivot]
  18. right = [x for x in arr if x > pivot]
  19. return quicksort(left) + middle + quicksort(right)
  20.  
  21. print(quicksort([3, 6, 8, 10, 1, 2, 1]))
  22. `
  23.  
  24. Как это работает
  25.  
  26. Выбирается опорный элемент, массив делится на три части (меньше, равно, больше), затем части сортируются рекурсивно и склеиваются.
  27.  
  28. Пример работы
  29.  
  30. `text
  31. [1, 1, 2, 3, 6, 8, 10]
  32. ``
  33.  
  34. Сложность
  35.  
  36. O(n log n) в среднем, O(n²) в худшем случае.
  37.  
  38. Разбор по шагам
  39.  
  40. 1. Шаг 1. Входные данные. Проверяем, что приходит в функцию, и какие значения считаются корректными.
  41. 2. Шаг 2. Основной цикл. Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
  42. 3. Шаг 3. Результат. Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.
  43.  
  44. Когда каждый шаг понятен, доработка решения перестаёт быть лотереей.
  45.  
  46. View Full Gallery → https://go.cbrop.com/prse
  47.  
  48. Related:
  49.  
  50. https://blogfreely.net/sarah-yakovlev/fc2-liu-chu
  51. https://posts.workshop-hub.workers.dev/word-count-razbor
  52. https://sergeyjansen11.wixsite.com/my-site-1/post/%E6%B2%B3%E5%8C%97%E8%8A%B1%E5%BA%97%E8%80%81%E6%9D%BF%E5%A8%98
  53. https://rentry.org/angel-thedreamgirl-918936
  54. https://pastebin.com/KnnphvxG
  55.  
Advertisement
Add Comment
Please, Sign In to add comment