Какова временная сложность удаления всех элементов массива? - PullRequest
0 голосов
/ 18 мая 2019

Как мы знаем, временная сложность удаления элемента массива равна o (n), так какова временная сложность удаления всего массива?

Я думаю, что o (1), потому что массивадресное пространство непрерывно.моя догадка верна?

1 Ответ

0 голосов
/ 18 мая 2019

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

Существуют исключения, некоторые реализации могут, например, использовать алгоритм, который очищает память в чанках, превышающих размер каждого элемента в массиве (который будет равен O (n / c), где c - это во сколько раз больше чанка по сравнению сэлемент в массиве), и некоторые языки могут просто освобождать исходный массив и иметь указатели, указывающие на новый пустой массив, который будет O (1).Ответ выше, однако, предполагает наивную реализацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...