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

Сортировка вставками: интерактивная анимация (Insertion Sort)

Берем элементы по одному и вставляем их в правильное место отсортированной части массива

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

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

Как работает сортировка вставками

Идея алгоритма. Представьте, что вы играете в карты и берете новую карту со стола. Вы смотрите на свои карты (которые уже отсортированы в руке) и вставляете новую карту между нужными. Точно так же работает и этот алгоритм.

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

Сортировка вставками - это алгоритм с квадратичной сложностью в худшем и среднем случае, но с линейной - в лучшем. Это делает ее адаптивной: чем "ровнее" входной массив, тем быстрее она работает. График сложности можно посмотреть тут.

По времени

Случай Время Комментарий
Лучший O(n) Массив уже отсортирован. По одному сравнению на элемент, 0 сдвигов
Средний O(n²) В среднем каждый элемент сдвигает половину левой части
Худший O(n²) Массив отсортирован в обратном порядке. Максимальное число сдвигов

По памяти

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

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

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

Характеристика Оценка Комментарий
Устойчивость Да Алгоритм сдвигает элементы только если они строго больше `key`. Равные элементы остаются в исходном относительном порядке.

Примеры реализации сортировки вставками

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