Не «прочитай определение», а «увидь, что он делает». Каждый алгоритм — интерактивная визуализация, пошаговый разбор и исходный код с подсветкой активной строки.
Разбиение вокруг опорного: меньшие влево, большие вправо — и рекурсия в обе половины.
Max-heap: корень — всегда максимум. Извлекаем корень в хвост, просеиваем — O(n log n) на месте.
Сортировка по разрядам — единицам, десяткам, сотням — устойчивыми проходами подсчёта.
Берём элемент и вставляем на место в отсортированной части — как карты в руке.
В каждой зоне находим минимум и ставим его в начало зоны — обменов меньше, чем у пузырька.
Ни одного сравнения: считаем вхождения значений и раскладываем по счётчикам за O(n + k).
Соседние пары меняются местами, пока максимум не «всплывёт» в конец — и так для каждой позиции.
Сливаем отсортированные прогоны удваивающейся ширины — всегда O(n log n), без худших случаев.
Каждая перестановка равновероятна за один проход — и один seed всегда даёт одно перемешивание.