考虑下面的C函数:
null
double foo ( int n) { int i; double sum; if (n = = 0) return 1.0; else { sum = 0.0; for (i = 0; i < n; i++) sum += foo (i); return sum; } } |
假设我们修改上述函数foo(),并在计算时存储foo(i),0<=i
我们需要一个大小为O(n)的数组。递归调用所需的空间将是O(1),因为值将从存储的数组中获取,而不是一次又一次地进行函数调用。 这个问题的小测验
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END