【发布时间】:2021-02-04 12:03:53
【问题描述】:
在这里我得到了一个这样的函数,我想找到它的递归关系,然后计算该递归关系的时间复杂度。
public static void f(int n) {
if (n == 1) {
//" Do sth "
} else {
for (int i = 1; i < n; i++) {
f(i - 1);
//" Do sth "
}
}
}
实际上我为此尝试了很多,我得到了 T(n) = n * f(n-1) 作为这个函数的关系,但我不是肯定的。你能帮我找到正确的关系并解决它吗?
【问题讨论】:
-
请注意,时间复杂度将是
n的表达式,而不是涉及f()的表达式:所以开始写出低 n 的运行:给定 f() 运行多少次n=1, n=2, ..., 直到 n=10?实际上写出调用链来了解这段代码的行为是只有你才能做的事情,之后你甚至不太可能仍然需要我们 =) -
别忘了添加
" Do sth "的贡献。
标签: java recursion time-complexity analytics