在空间复杂度上,我们认为二维数组的指针有多大?

时间:2018-08-28 11:55:57

标签: arrays algorithm asymptotic-complexity

enter image description here

这是我算法书中给出的代码。我们需要计算其空间复杂度。

这是给出的答案-

enter image description here

复杂度S=C+Sp,在这种情况下,Sp为零,因为代码独立于n。 但是我想计算代码的C部分,在这种情况下,考虑5*2bytes=10 bytes

就是a,x,n,0 and -1.

所以我的问题是,如果a是2d矩阵,那么C是什么?我们是否仅像1d数组那样将其视为2 bytes或将其作为4个字节?

1 个答案:

答案 0 :(得分:0)

自八十年代中期以来,指针和整数不再是16位,所以我想知道2字节是什么意思。

还要注意,您对空间的计算有些奇怪。您无需计算变量i,但可以计算文字常量,这些常量通常在汇编代码中显示为直接参数。

无论如何,在一台32位计算机上,所有地址(和指针)均以4个字节表示,并且数组尺寸的额外计算由编译器执行并硬编码到程序集中。

在64位计算机上,每个指针计数8个字节,每个int计数4个字节。