Time complexity 我是否正确计算了这些函数的大O?

Time complexity 我是否正确计算了这些函数的大O?,time-complexity,big-o,Time Complexity,Big O,我试图找出以下两个函数的时间复杂性: 第一个 public static int myMethod1(int[] arr) { int x = 0; for (int i = 0; i < arr.length / 2; i++) { for (int j = 0; j < arr.length; j++) { for (int k = 0; k < arr.length; k++) { x

我试图找出以下两个函数的时间复杂性: 第一个

public static int myMethod1(int[] arr) {
    int x = 0;
    for (int i = 0; i < arr.length / 2; i++) {
        for (int j = 0; j < arr.length; j++) {
            for (int k = 0; k < arr.length; k++) {
                x++;
                if (k == arr.length / 2) {
                    break;
                }
            }
        }
    }
    return x;
}
公共静态int myMethod1(int[]arr){
int x=0;
对于(int i=0;i
所以我在想这个。 该方法包含3个循环,循环迭代变量i、j和k… i和j,k每经过一次都会增加1…这给了我们每个循环N,剩下三个N…,这给了我们O(N^3)

下一个问题是:

public static int myMethod(int N) {
    int x = 0;
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N / 2; j++) {
            for (int k = 1; k < N;) {
                x++;
                k *= 2;
            }
        }
    }
    return x;
}
公共静态int-myMethod(int-N){
int x=0;
对于(int i=0;i
我在想这个。 该方法包含3个循环,循环在变量i、j和k上迭代。每次传递时,i和j都会增加1…这给了我们每个循环的N值,剩下两个N。。最后一个循环k加倍,即log(n)。 所以这个问题的结果是O(N^2·log(N))


这是正确的吗?如果不是,为什么?你是对的。在这两个问题中

我尝试了一些不同的方法,但我想补充一点,这个解决方案对我来说最有意义,所以我希望它是正确的。具体来说,是什么让你怀疑你的解决方案是正确的?堆栈溢出实际上不是检查家庭作业答案的合适地方,但如果您对其中一个答案有特定问题,那么您可以问这个问题。