Деление на ноль

Сортировка Шелла: интерактивная анимация (Shell Sort)

Улучшенная версия сортировки вставками: сравниваем и обмениваем элементы на расстоянии шага

Визуализация

Данные: Случайные
Данные:
Легенда цветов
ждет очереди сравниваем (gap) обмениваем отсортировано
Нажмите "Пуск" или листайте по шагам.
Шаг (gap): - Сравнения: 0 Обмены: 0 Ход: 0 / 0 Сложность по времени: -

Как работает сортировка Шелла

Идея алгоритма. Сортировка вставками отлично работает на почти отсортированных массивах, но чудовищно медленна, если маленький элемент находится в самом конце - ему приходится сдвигаться на 1 позицию за раз. Сортировка Шелла решает эту проблему: она позволяет обменивать элементы, находящиеся далеко друг от друга.

Сложность алгоритма

Сложность зависит от того, какую последовательность шагов gap мы выберем. Классическая последовательность (деление на 2: n/2, n/4, ..., 1) не является оптимальной.

По времени

Показывает, как растет число операций (сравнений и сдвигов/обменов) при росте n. Лейбл "Сложность по времени" под визуализацией показывает общую оценку для классической версии.

Случай Время Комментарий
Лучший случай O(n log n) Массив уже отсортирован.
Средний случай O(n^1.5) Зависит от шагов. С последовательностью Хиббарда или Кнута сложность лучше O(n²).
Худший случай O(n^2) Для классической последовательности n/2, если элементы на нечетных позициях больше элементов на четных.

По памяти

Показывает, сколько дополнительной памяти нужно алгоритму.

Характеристика Оценка Комментарий
Дополнительная память O(1) Сортировка происходит "на месте" (in-place), элементы меняются местами внутри самого массива.

Устойчивость алгоритма

Устойчивой называется сортировка, которая не меняет взаимный порядок равных элементов.

Характеристика Оценка Комментарий
Устойчивость Нет Равные элементы могут быть переставлены, так как обмены происходят на больших расстояниях (gap > 1).

Примеры реализации сортировки Шелла (Shell Sort)

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