为什么字符串的 space 复杂度为 O(n) 而数字为 O(1)?

Why are strings' space complexity O(n) but numbers are O(1)?

我有点迷失在辅助 Space 复杂性上。

在我参加的讲座中,讲师指出字符串的复杂度为 space O(n),因为字符串的长度 (n) 会有所不同。但是诸如数字、布尔值、未定义等原语具有常量 space 复杂度 O(1)。

我很困惑,因为如果字符串的 space 的长度不同,那么数字也不一样吗?既然他们也会有不同的"lengths"?

我确实理解布尔值和未定义的复杂度是 O(1),我的意思是 true/false,未定义和 null 是与长度无关的实例。

如果有人能为我澄清这一点,我将不胜感激。

计算机使用的所有数字都是限制。例如,C's limits are here。因此,如果您尝试分配超出此限制的数字,程序要么出错,要么开始表现怪异。这意味着数字可以并且存储在恒定数量的字节中。

字符串没有这样的限制。除了内存,这很少成为问题。

在现实世界中,数字大小确实是无限的,但这里是关于数字基元的。根据定义,每个原语都需要固定数量的存储单元(这就是它只能保存有限范围的值的原因)。与数字基元不同,字符串的大小在理论上是无限的,它占用与输入大小(即构成字符串的字符)对应的存储空间。