确定递归函数的 CN 和时间复杂度

Determine the CN and time comlexity for the recurrence function

public static int test(int N) {
  if (N == 1) return 1; 
  return (3 * (test(N/2) + test(N/2)) + f(N)) 
}

public static void f(int a) {
  for (int i = 1; i <= a; i++) 
  System.out.println(“algo rocks”);
}

我试图确定上述代码的 CN 和复杂性

我得出了这个结论

我迷失了这个功能相乘的3,请你检查我的工作并指导我哪里错了。

你声称 C(1) = 0 是错误的,它实际上是 1。

所以,C(1) = 1。

此外,函数 f() 的时间复杂度在最坏情况下为 O(N),因为 N 被传递给函数。

所以,你的递归关系结果是:

T(N) = 3 * 2 * T(N/2) + O(N)
     = 6 T(N/2) + O(N).

我把递归关系留给你解决。这简单。如果您无法计算,请至少在尝试一次后在此答案下方执行 ping 操作。