你所说得 算法中如果有结果相同的计算要保存下来,这种方法叫备忘录,从算法的角度上来说确实更快。 因为相同的计算公式不需要重新计算一次、 从jvm级别的方法调用压栈的角度来说,少压了一些方法回调。jvm中的栈省了空间。 给你举个例子 . method a(i){ if(m) return n; return a(i-1) * a(i-2); } 楼主不嫌麻烦可以把i=10的所有调用都写出来一次,就能体会到备忘录的好处,而jvm级别的压栈需要好好看看书中的内容。
method a(i){ if(m) return n; return a(i-1) * a(i-2); }
[quote=引用 2 楼 u011619071 的回复:] 你所说得 算法中如果有结果相同的计算要保存下来,这种方法叫备忘录,从算法的角度上来说确实更快。 因为相同的计算公式不需要重新计算一次、 从jvm级别的方法调用压栈的角度来说,少压了一些方法回调。jvm中的栈省了空间。 给你举个例子 . method a(i){ if(m) return n; return a(i-1) * a(i-2); } 楼主不嫌麻烦可以把i=10的所有调用都写出来一次,就能体会到备忘录的好处,而jvm级别的压栈需要好好看看书中的内容。
62,628
社区成员
307,259
社区内容
加载中
试试用AI创作助手写篇文章吧