DEV//UNIT
01 / Раздел

АЛГОРИТМЫ

Не «прочитай определение», а «увидь, что он делает». Каждый алгоритм — интерактивная визуализация, пошаговый разбор и исходный код с подсветкой активной строки.

Sorting

Быстрая сортировка

Разбиение вокруг опорного: меньшие влево, большие вправо — и рекурсия в обе половины.

столбикиначальныйO(n log n) в среднем

Пирамидальная сортировка

Max-heap: корень — всегда максимум. Извлекаем корень в хвост, просеиваем — O(n log n) на месте.

графначальныйO(n log n)

Поразрядная сортировка

Сортировка по разрядам — единицам, десяткам, сотням — устойчивыми проходами подсчёта.

столбикиначальныйO(d·(n + b))

Сортировка вставками

Берём элемент и вставляем на место в отсортированной части — как карты в руке.

массивначальныйO(n²)

Сортировка выбором

В каждой зоне находим минимум и ставим его в начало зоны — обменов меньше, чем у пузырька.

столбикиначальныйO(n²)

Сортировка подсчётом

Ни одного сравнения: считаем вхождения значений и раскладываем по счётчикам за O(n + k).

массивначальныйO(n + k)

Сортировка пузырьком

Соседние пары меняются местами, пока максимум не «всплывёт» в конец — и так для каждой позиции.

столбикиначальныйO(n²)

Сортировка слиянием

Сливаем отсортированные прогоны удваивающейся ширины — всегда O(n log n), без худших случаев.

столбикиначальныйO(n log n)

Тасование Фишера–Йетса

Каждая перестановка равновероятна за один проход — и один seed всегда даёт одно перемешивание.

столбикиначальныйO(n)