小编use*_*380的帖子

如何在Java中找到递归方法的时间复杂度?

我无法完全掌握复杂性的概念,我想知道如何在这段代码中为方法f(n)计算它:

import java.util.Random;

public class Main {
  public static void main(String[] args) {
    Random r = new Random();
    r.setSeed(System.currentTimeMillis());
    int n = r.nextInt(20) + 1;
    f(n);
  }

  private static void f(int n){
    if(n > 0){
      g(n);
      System.out.println();
      f(n-1);
    }
  }

  private static void g(int n){
    if(n > 0){
      System.out.print('X');
      g(n-1);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道这是一种递归方法,令我感到困惑.我看到每次调用函数f()时,都会调用g()并运行n次,然后f()再次将自身称为n-1,直到n = 0.我不知道从哪里开始任何帮助都会很棒.谢谢.

java recursion big-o time-complexity

7
推荐指数
1
解决办法
3401
查看次数

标签 统计

big-o ×1

java ×1

recursion ×1

time-complexity ×1