pb1a38a600

Common mistakes in quicksort

Nov 6th, 2026
4
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. Common mistakes in 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. Не обрабатывать крайние случаи. Пустой ввод, ноль, отрицательные числа — именно там решение чаще всего ломается.
  41. 2. Смешивать типы данных. Строки и числа ведут себя по-разному; неявное приведение типов — источник неочевидных багов.
  42. 3. Писать код без проверки на маленьких примерах. Прогоните решение вручную на 2-3 значениях, прежде чем считать задачу решённой.
  43.  
  44. Заметив такую ошибку в чужом коде, вы уже мыслите как ревьюер.
  45.  
  46. View Full Gallery → https://go.cbrop.com/prse
  47.  
  48. Related:
  49.  
  50. https://pastebin.com/2mXn7kT0
  51. https://blogfreely.net/igorcollins26/bitoruzu-iesutadei
  52. https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/elif-tanyelitan-ifsa-a264e0.pdf
  53. https://milhench.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/naked-touch-7f36c9.pdf
  54. https://rentry.org/cos-330545
  55.  
Advertisement
Add Comment
Please, Sign In to add comment