Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我有没有找到以下Java函数的渐近复杂性的正确方法?_Java_Algorithm_Big O_Asymptotic Complexity - Fatal编程技术网

我有没有找到以下Java函数的渐近复杂性的正确方法?

我有没有找到以下Java函数的渐近复杂性的正确方法?,java,algorithm,big-o,asymptotic-complexity,Java,Algorithm,Big O,Asymptotic Complexity,例1: 我想说的是Ologn,我的推理是,如果我们选择一个测试n,n=10,那么‘I’将运行:0,2,4,6,8,10,所以‘I’的行为是线性的,不是增长的,而是每次迭代时加上+2。这个方法也是依赖于n的,也就是说,随着n的增长,这个方法也会增长。第一个循环是开的,第二个循环是开的,如果我们选择n test为n=10,那么在每次迭代之后,“j”将运行:2,4,8,16,32,64可以被认为是2^n,这是一个对数函数,所以这个循环是对数的。计算这个:On*Ologn=Ologn for (i =

例1:

我想说的是Ologn,我的推理是,如果我们选择一个测试n,n=10,那么‘I’将运行:0,2,4,6,8,10,所以‘I’的行为是线性的,不是增长的,而是每次迭代时加上+2。这个方法也是依赖于n的,也就是说,随着n的增长,这个方法也会增长。第一个循环是开的,第二个循环是开的,如果我们选择n test为n=10,那么在每次迭代之后,“j”将运行:2,4,8,16,32,64可以被认为是2^n,这是一个对数函数,所以这个循环是对数的。计算这个:On*Ologn=Ologn

for (i = 0; i < n; i = i + 2) {
for ( i = 1; j <= n; j = j*2) {
System.out.println("Hi");
}
}
例2:

对于这一个,如果我们选择n为n=10,那么“i”运行:2,4,8,16,32也可以重写为2^n,这是对数的

for (i = 1; i < n; i = i + i) {
System.out.println("Soda");
}
例3:

对于这一个,第一个循环是n依赖的,方法随着n的增长而改变,没有什么特别的,它只是加上+1,所以对于任何输入的n,这是一个n依赖的循环。 如果数字为偶数,则运行第一个嵌套循环;如果数字为正数,则运行第二个嵌套循环。第一个内部循环也是同样复杂的。我认为最后一个内部循环是,尽管n*n开启。计算得到:如果if语句为真,则On*On=On^2,如果if语句为假,则On*On,因此在最坏的情况下,它为^2,因为我们将两个On相乘

for (i = 0; i < n; i++) {
if (i % 2 == 0) {
for (j = 0; j < n; j++) {
System.out.println("Rawr");
}
} else {
for (j = 0; j < n*n; j++) {
System.out.println("Computer");
}
}
我犯过错误吗? 请解释一下
谢谢你

不幸的是,从你提供的信息中,我们知道的不多。你在寻找时间复杂性吗?时空复杂性?运行时复杂性


除此之外,方法的复杂性实际上只有在方法被多次调用时才有用,而这并不像您所建议的那样发生。如果您不知道该方法是如何调用的,您将无法准确确定其中任何一个方法的复杂性。

您的问题是“检查我的CS作业”吗?如果是这样的话,它可能不适合这样做。看看可能的重复,这与Java完全无关,这是一个一般编程问题。On*Ologn=Ologn…否?它在logn上。@LouisWasserman啊,对了!我想知道的是,每当我们有一个线性函数和一个对数函数嵌套,或者反之亦然,我们把它们相乘,得到*logn。对于这一点,我们总是有嵌套的循环,事情会变得多重化。谢谢