Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 递归代码的空间复杂度_Algorithm_Recursion_Analysis - Fatal编程技术网

Algorithm 递归代码的空间复杂度

Algorithm 递归代码的空间复杂度,algorithm,recursion,analysis,Algorithm,Recursion,Analysis,考虑以下Java方法: public static void f(int n) { if (n<=1) { System.out.print(n) ; return; }else { f(n/2) ; System.out.print(n); f(n/2); } } // end of method publicstaticvoidf(int n){ if(n每当函数递归调用自身时,

考虑以下Java方法:

   public static void f(int n) {
    if (n<=1) { 
       System.out.print(n) ; 
       return; 
   }else {
       f(n/2) ;
       System.out.print(n);
       f(n/2);
    }
 } // end of method
publicstaticvoidf(int n){

if(n每当函数递归调用自身时,所有局部变量都保留在堆栈上,并且为新调用将一组新的局部变量推送到堆栈中。 这意味着您关心最多有多少个调用,换句话说,递归的最大深度是多少

很明显,它是logn,因为连续的参数是n,n/2,n/4,…,1。
局部变量的数量是恒定的,即1(堆栈上需要空间),因此总体空间复杂度为O(logn)。

每当函数递归调用自身时,所有局部变量都保留在堆栈上,并将一组新的局部变量推送到堆栈以进行新的调用。 这意味着您关心最多有多少个调用,换句话说,递归的最大深度是多少

很明显,它是logn,因为连续的参数是n,n/2,n/4,…,1。
局部变量的数量是恒定的,即1(堆栈上需要空间),因此总体空间复杂度为O(logn).

Stack Overflow不是发布在线考试并要求人们参加这些考试的地方。Stack Overflow是询问与编程相关的问答网站的地方。因此,如果你希望在这个问题上得到一些帮助,你必须提供你迄今为止的分析,并说明你为解决这些问题所做的努力,解释任何可能的困难你可能在这个过程中遇到了。谢谢你的无用评论,我并不是在试图找出答案……我知道答案。有时你只是不知道从哪里开始。堆栈溢出不是发布在线考试并要求人们参加这些考试的地方。堆栈溢出是询问与编程相关的问答网站的地方。所以如果你希望在这个问题上得到一些帮助,你必须提供你迄今为止的分析,并说明你为解决这个问题所做的努力,解释你在这个过程中可能遇到的任何困难。感谢你无用的评论,我不是在试图得到答案……我知道答案。有时你只是不知道从哪里开始。