У меня есть сомнения относительно пространственной сложности программы. Предположим, что я повторяю Array (сохраняет идентификаторы событий) размером n (может быть в миллиардах). Я хотел отслеживать появление каждого идентификатора события, поэтому я использовал хэш-карту для хранения идентификатора события как ключа и его счетчика в качестве значения.Космическая сложность HashMap при итерации по массиву в линейном времени
Вот псевдо-код:
Map m = HashMap<>
for i to n-1
if m.contains(i)
int prevCount = m.get(i)
m.put(i, prevCount +1)
else
m.put(i, 1)
Что бы пространство сложность?
PS Это мой первый вопрос в stackoverflow, если он кажется дублирующим, пожалуйста, направить меня к правильному ответу.
Спасибо за ваш ответ, поэтому, когда мы вычисляем пространственную сложность специально для структуры данных типа хэш-карты, рассмотрим пространство, взятое каждым К, V или рассмотрим Пространство, взятое объектом-объектом в массиве. Допустим, моя память программ может хранить до миллиарда элементов, и я получил такое же количество событий, что и все уникальные, если мы рассмотрим сложность пространства для каждого K, V, это будет n^2 элемента в памяти, которые могут выйти из памяти. Я немного запутался здесь. Извините, мой вопрос может звучать как новичок, но, пожалуйста, дайте свои материалы. – here4learn
@ here4learn обычно вы можете считать пространство, взятое одной парой значений ключа, постоянным, поэтому сложность пространства карты зависит только от общего числа пар. – Eran
Спасибо @Eran за ваше время. – here4learn