Почему сложность пространства строк O (n), а числа O (1)? - PullRequest
3 голосов
/ 11 февраля 2020

Я немного заблудился в Сложностях Вспомогательного Пространства.

В лекции, которую я беру с инструктором, говорится, что строки имеют пространственную сложность O (n), поскольку длина строки (n) будет меняться. Но примитивы, такие как числа, логические, неопределенные и т. Д. c, имеют постоянную пространственную сложность O (1).

Я в замешательстве, потому что, если пространство строк отличается по длине, разве это не будет одинаковым и с числами? Так как у них тоже будут разные "длины"?

Я понимаю, что булевы и неопределенные - это O (1), я имею в виду true / false, undefined и null - независимые от длины экземпляры.

Если кто-нибудь может уточнить это для меня, я был бы признателен.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020

В реальном мире размер числа действительно неограничен, однако здесь речь идет о числовых примитивах. Каждый примитив по определению требует фиксированного количества единиц хранения (и именно поэтому он может содержать только ограниченный диапазон значений). В отличие от числовых примитивов, размер строки теоретически не ограничен и занимает память, соответствующую размеру ввода (т. Е. Символам, которые составляют строку).

0 голосов
/ 11 февраля 2020

Все номера, используемые компьютерами, ограничены. Например, ограничения C здесь . Поэтому, если вы попытаетесь присвоить номер за пределами этого предела, программа либо выдаст ошибку, либо начнет вести себя странно. Это означает, что числа могут храниться в постоянном количестве байтов.

Строки не имеют таких ограничений. Кроме памяти, которая редко является проблемой.

...