让我们看一个在计算机上运行的简单代码片段,用于迭代数组
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
//print (i,j)
}
}
我知道
int i
有助于大O(1),而
array
为空间复杂度贡献了 Big O(array.length
)。
据此,我可以估计为算法分配了多少物理内存吗?
来自 @trincot @derpirscher 的评论和一些研究是我的答案:
空间复杂度更多的是一种理论构造。
它可以帮助我们通过算法了解内存使用趋势,但在不实际了解系统配置(机器架构、操作系统、数据类型、编程语言...)的情况下,“不可能”估计物理内存分配算法正在执行。