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