Определение сложности пространства

По временной сложности мы понимаем время работы алгоритма в зависимости от размера ввода (количество бит, необходимое для представления экземпляра в памяти). Тогда как определить пространственную сложность в отношении этого наблюдения? Очевидно, это не может быть связано с размером экземпляра...

Ответ 1

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

Иногда пространство ввода и вывода объединяется в один блок хранения, и вход может быть изменен. В этой модели, например, у heapsort есть пространственная сложность O (1), в то время как mergesort имеет пространственную сложность O (n) для вспомогательного пространства памяти, необходимого для слияния.

Надеюсь, это поможет!