Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: time, complexity

Какую временную сложность имеет алгоритм удаления дубликатов из списка с сохранением порядка?

Вопрос проверяет умение анализировать асимптотическую сложность алгоритмов на практике.

Короткий ответ

Алгоритм работает за O(n), где n — длина списка. Каждый элемент обрабатывается один раз. Проверка наличия элемента в set выполняется за O(1) в среднем. Поэтому общее время линейное. Память также используется линейно.

Длинный ответ

Оценка сложности алгоритма дедупликации напрямую связана с используемыми структурами данных.

Базовое рассуждение

Перед перечислением важно зафиксировать: сложность считается по количеству операций относительно размера входных данных.

Временная сложность

  1. Проход по списку

    • n итераций → O(n)

  2. Проверка в set

    • среднее время O(1)

  3. Добавление в set

    • среднее время O(1)

Итого:

  • Временная сложность: O(n)

Пространственная сложность

  1. Дополнительный set из n элементов

  2. Результирующий список из n элементов

  • Пространственная сложность: O(n)

Что может ухудшить сложность

  1. Плохая хеш-функция

  2. Коллизии

  3. Нехешируемые элементы

Вывод

Алгоритм удаления дубликатов с сохранением порядка имеет линейную временную сложность и хорошо масштабируется на больших списках.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • Python

    Python

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

#time

#complexity

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.