空间复杂度计算
前置芝士
\(KB\) 与 \(Kb\) 的区别
\(KB = KByte\) ,其中 \(K\) 表示 \(kilo\) 是一千的意思, \(Byte\) 表示字节
\(Kb = Kbit\) ,中 \(k\) 同上, \(bit\) 是比特的意思
\(KiB\) 与 \(Kb\) 的区别
\(KiB\) 的为 \(1024Byte\)
\(KB\) 的为 \(1000Byte\)
进制
\(1GiB = 1024MiB = 1024 \cdot 1024 \cdot KiB = 1024 \cdot 1024 \cdot 1024 \cdot Byte = 8 \cdot 1024 \cdot 1024 \cdot 1024 \cdot bit\)
每个数据类型所占内存大小
\(char\) 为 \(8\) 位(\(8\) 个 \(bit\)), \(1\) 字节(\(1\) 个 \(Byte\))
\(short\) 为 \(16\) 位(\(16\) 个 \(bit\)), \(2\) 字节(\(2\) 个 \(Byte\))
\(int\) 为 \(32\) 位(\(32\) 个 \(bit\)), \(4\) 字节(\(4\) 个 \(Byte\))
\(long long\) 为 \(64\) 位(\(64\) 个 \(bit\)), \(8\) 字节(\(8\) 个 \(Byte\))
\(float\) 为 \(32\) 位(\(32\) 个 \(bit\)), \(4\) 字节(\(4\) 个 \(Byte\))
\(double\) 为 \(64\) 位(\(64\) 个 \(bit\)), \(8\) 字节(\(8\) 个 \(Byte\))
\(bool\) 为 \(8\) 位(\(8\) 个 \(bit\)), \(1\) 字节(\(1\) 个 \(Byte\))
空间复杂度计算
若 内存为 \(x\) MiB, 所用数据类型所占字节个数为 \(y\)
则可以开的数组的最大长度为 \(x * 1024 * 1024 / y\)