Insertion Sort Начальный ~22 мин чтения

Insertion Sort

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

Interactive

Insertion Sort Visualizer

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

sorting

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

Insertion Sort

Insertion Sort — алгоритм, который строит отсортированную часть массива, вставляя элементы по одному.

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

Берём очередной элемент и вставляем его в нужное место среди уже отсортированных.

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

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

[7, 4, 5, 2, 9]
  1. Берём 4 и вставляем перед 7 → [4, 7, 5, 2, 9]
  2. Берём 5 и вставляем между 4 и 7 → [4, 5, 7, 2, 9]
  3. Берём 2 и сдвигаем элементы вправо → [2, 4, 5, 7, 9]

Псевдокод

for i from 1 to n - 1:
    key = arr[i]
    j = i - 1
    while j >= 0 and arr[j] > key:
        arr[j + 1] = arr[j]
        j = j - 1
    arr[j + 1] = key

Оптимизация: Эффективен на почти отсортированных данных.

Сложность

Время O(n²) в среднем/худшем, O(n) в лучшем случае.
Память O(1), in-place.

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

  • Маленькие массивы
  • Почти отсортированные данные
  • База для гибридных сортировок

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

  • Стабильный
  • In-place
  • Простой для понимания