【发布时间】:2013-12-25 22:36:39
【问题描述】:
所以这是一个两部分的问题。
我有一些要求时间复杂度的代码,它由 3 个 for 循环(嵌套)组成:
public void use_space(int n)
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
for(int k=0;k<N;k++)
//and at the end of the code, it makes a recursive call to the function
use_space(n/2);
use_space(n/2);
所以我为这个时间复杂度重复推导出的是:T(n) = 2T(n/2) + n^3。我得到这个的原因是因为对函数进行了 2 次递归调用,每个调用由 n/2 时间组成,并且嵌套的 for 循环需要 n^3 时间(3 次循环)。
这样说对吗?
然后对于空间复杂度,我得到了S(n) = S(n/2) + n
希望有人可以澄清并告诉我这是否错误/解释。我们将不胜感激所有帮助。
【问题讨论】:
-
有人可以帮忙吗?
标签: java recursion complexity-theory space recurrence