Quick Sort Средний ~30 мин чтения

Quick Sort

Урок 5 из 10 в курсе Алгоритмы. Старт.

Interactive

Quick Sort Visualizer

Введите числа и управляйте пошаговым выполнением алгоритма.

sorting

История шагов

Quick Sort

Quick Sort — быстрый алгоритм сортировки, основанный на разбиении массива относительно опорного элемента.

Основная идея

Выбираем pivot, переносим меньшие элементы влево, большие — вправо, затем рекурсивно сортируем части.

Пошаговый пример

Исходный массив:

[7, 2, 9, 4, 3, 8]
  1. Pivot = 8, после partition получаем ... 8 на правильной позиции
  2. Рекурсивно сортируем левую часть
  3. После нескольких partition получаем [2,3,4,7,8,9]

Псевдокод

quick_sort(arr, left, right):
    if left >= right: return
    pivot_index = partition(arr, left, right)
    quick_sort(arr, left, pivot_index - 1)
    quick_sort(arr, pivot_index + 1, right)

Оптимизация: Используйте random pivot или median-of-three, чтобы снизить риск худшего случая.

Сложность

Время O(n log n) в среднем, O(n²) в худшем случае.
Память O(log n) на стек рекурсии в среднем.

Когда используется

  • Общая сортировка в памяти
  • Высокая производительность на практике
  • Встроенные сортировки

Ключевые свойства

  • Не стабильный
  • Обычно in-place
  • Очень быстрый в среднем