Для копирования поддерживаемого графа данных время обычно пропорционально числу посещённых узлов, связей и объёму данных, а память — размеру копии.
Какова сложность алгоритмов глубокого копирования, если объекты большие?
Для копирования поддерживаемого графа данных время обычно пропорционально числу посещённых узлов, связей и объёму данных, а память — размеру копии.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для копирования поддерживаемого графа данных время обычно пропорционально числу посещённых узлов, связей и объёму данных, а память — размеру копии.
Чтобы циклы не вызывали бесконечную рекурсию и повторные ссылки сохранялись, нужен учёт уже скопированных объектов. У рекурсивного варианта добавляется стек по глубине, способный переполниться. Стоимость строк и бинарных буферов нельзя игнорировать, считая только число объектов.