Вступить в клуб →
лёгкаявопросСложность и стоимость структур данных

Вставка в начало списка Python внутри цикла: во что превращается сложность

Коллега собирает перевёрнутую копию списка так:

def reverse_copy(items):
    out = []
    for x in items:
        out.insert(0, x)
    return out

На списке из 200 000 элементов функция работает недопустимо долго. Какая асимптотика по времени у этого кода относительно длины входа n?

  • O(n) — цикл проходит по списку ровно один раз
  • O(n log n) — список периодически перевыделяет память
  • O(log n) — вставка ищет позицию двоичным поиском
  • O(n^2) — каждая вставка в начало сдвигает уже накопленные элементы

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела