三个for循环的复杂度

Mat*_*our 1 java time-complexity

我想知道以下代码的时间复杂度是 O(n^3) 还是 O(n^2)

public void firstMethod() {
    for (int i = 0; i < 6; i++) {
        for (int j = 0; j < 6; j++) {
            secondMethod();
        }
    }
}

public void secondMethod(){
    for (int i = 0; i < 6; i++) {
        System.out.println("This is a test to observe complexity");
    }
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ris 7

这是 O(1),因为运行时间是恒定的。每个循环的边界永远不会改变,因此该方法的运行时间永远不会改变。

现在,您是否写了以下内容:

public void firstMethod(int n) {
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            secondMethod(n);
        }
    }
}

public void secondMethod(int n) {
    for (int i = 0; i < n; i++) {
        System.out.println("This is a test to observe complexity");
    }
}
Run Code Online (Sandbox Code Playgroud)

那么 firstMethod运行时复杂度将是 O(n^3)。