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