分析算法的空间复杂度主要是分析
一般情况下,一个算法在机器上执行时,除了需要存储本身所需要的代码和输入数据外,还需要一些对数据进行操作的临时变量所占空间。
函数体内分配的变量空间为临时空间。算法空间复杂度是对一个算法在运行过程中临时占用的存储空间大小的量度。一般也作为问题规模n的函数,以数量级形式给出,记作S(n) = O(g(n))。
在C、C++语言中,函数A调用函数B时,B中形参b只是一个指向A中实参a的指针,即形参b只分配一个地址大小的空间,并非另外分配空间存储临时变量。如果B函数中再考虑形参b的空间,就重复累计了执行整个算法所需的空间。如下图求最大公约数算法中,临时空间为变量temp和m占用的空间,而n1和n2不是。