Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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
Java中的求值顺序_Java_Recursion - Fatal编程技术网

Java中的求值顺序

Java中的求值顺序,java,recursion,Java,Recursion,我有斐波那契序列的代码: 我的问题是:fibonaccii-1,memo总是在fibonaccii-2之前评估,memo正确吗?正确,从左到右 首先,您将使用左参数fibonaccii-1完全遍历递归,然后,当它再次向上移动递归树时,每次计算右参数时,再次使用完整的递归树 快速搜索可生成此图像,说明此过程: 请注意,许多值通常会计算多次。您当前的方法试图通过将结果缓存在数组备忘录中来优化此功能。正确,从左到右 首先,您将使用左参数fibonaccii-1完全遍历递归,然后,当它再次向上移动递归树

我有斐波那契序列的代码:

我的问题是:fibonaccii-1,memo总是在fibonaccii-2之前评估,memo正确吗?

正确,从左到右

首先,您将使用左参数fibonaccii-1完全遍历递归,然后,当它再次向上移动递归树时,每次计算右参数时,再次使用完整的递归树

快速搜索可生成此图像,说明此过程:

请注意,许多值通常会计算多次。您当前的方法试图通过将结果缓存在数组备忘录中来优化此功能。

正确,从左到右

首先,您将使用左参数fibonaccii-1完全遍历递归,然后,当它再次向上移动递归树时,每次计算右参数时,再次使用完整的递归树

快速搜索可生成此图像,说明此过程:

请注意,许多值通常会计算多次。您当前的方法试图通过将结果缓存在数组备忘录中来优化此操作。

可能重复的可能重复的
int fibonacci(int i, int[] memo) {
   if (i == 0 || i == 1) return i;

   if (memo[i] == 0) {
      memo[i] = fibonacci(i - 1, memo) + fibonacci(i - 2, memo);
   }

   return(memo[i]);
}