这是我算法书中给出的代码。我们需要计算其空间复杂度。
这是给出的答案-
复杂度为S=C+Sp
,在这种情况下,Sp
为零,因为代码独立于n
。
但是我想计算代码的C部分,在这种情况下,考虑5*2bytes=10 bytes
a,x,n,0 and -1.
所以我的问题是,如果a是2d矩阵,那么C是什么?我们是否仅像1d数组那样将其视为2 bytes
或将其作为4个字节?
答案 0 :(得分:0)
自八十年代中期以来,指针和整数不再是16位,所以我想知道2字节是什么意思。
还要注意,您对空间的计算有些奇怪。您无需计算变量i,但可以计算文字常量,这些常量通常在汇编代码中显示为直接参数。
无论如何,在一台32位计算机上,所有地址(和指针)均以4个字节表示,并且数组尺寸的额外计算由编译器执行并硬编码到程序集中。
在64位计算机上,每个指针计数8个字节,每个int计数4个字节。