Все темы
35

Сортировка вставкой каждого элемента на своё место

Tier 1Закрыто

Где применяется

1. Задача

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

Возьми таблицу лидеров, куда результаты приходят по одному. На доске уже стоят 2, 5 и 8, по порядку. Приходит 3. Сортировать всю доску заново не нужно: достаточно вставить 3 между 2 и 5. Доска снова упорядочена и стала на одно число длиннее.

Так и работает этот способ. Он берёт числа по одному и вставляет каждое на своё место среди уже упорядоченных.

Этот шаг из платной части

Бесплатные шаги в начале курса (их 33) открыты всем: урок, задача и тесты. Этот шаг открывается с полным доступом. Начни с бесплатного аккаунта и бесплатных шагов.

Завести бесплатный аккаунтПосмотреть, что входит

Как узнать

Элементарные сортировки (выбором, пузырьком, вставками) (Elementary sorts (selection, bubble, insertion))

Эти слова в условии значат этот паттерн

  • n маленькое (десятки или пара сотен)
  • массив уже почти отсортирован
  • сортировка на месте с O(1) дополнительной памяти
  • учебный/собеседовательный вопрос о механике сортировки
  • важна стабильность, а простота приемлема

Похоже, но не то

n примерно до 5000 нормально при O(n в квадрате). На почти отсортированных данных вставки дают O(n).

На LeetCode

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

Мы используем необходимые куки для работы сайта (вход и язык). Если ты согласишься, мы также загрузим Google Analytics, чтобы видеть, какие страницы читают, и Google reCAPTCHA для защиты форм обратной связи и сообщений об ошибке от спама. Политика конфиденциальности