Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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_For Loop_Time Complexity - Fatal编程技术网

Java 分析复杂度,以内部为单位,以第一个为单位,以第二个为单位

Java 分析复杂度,以内部为单位,以第一个为单位,以第二个为单位,java,for-loop,time-complexity,Java,For Loop,Time Complexity,第一个循环运行n次。 第二个for循环运行logn次。 但是第三个循环取决于第一个循环, 如果thirs循环依赖于第二个循环,我如何测量运行时间big O表示法?首先,作为一个友好的建议,您应该在自己的帖子中发布代码,而不是在外部网页中发布代码。这样更好,因为我们不必访问外部网页 现在,考虑一下这个问题。每当对数循环执行第二个循环时,就会有一个For循环执行b次迭代。然后,我们可以推断: On=a*b*c=将c替换为b=a*b*b=a*b²=n*log²n 这是有道理的,对吧?第一个循环在线性时

第一个循环运行n次。 第二个for循环运行logn次。 但是第三个循环取决于第一个循环,
如果thirs循环依赖于第二个循环,我如何测量运行时间big O表示法?

首先,作为一个友好的建议,您应该在自己的帖子中发布代码,而不是在外部网页中发布代码。这样更好,因为我们不必访问外部网页

现在,考虑一下这个问题。每当对数循环执行第二个循环时,就会有一个For循环执行b次迭代。然后,我们可以推断:

On=a*b*c=将c替换为b=a*b*b=a*b²=n*log²n


这是有道理的,对吧?第一个循环在线性时间内执行,第二个循环在对数时间内执行,第三个循环在第二个循环之后执行,因此它也在对数时间内执行,因为它们是嵌套的,所以可以将它们分组为平方对数时间。

您必须在这里使用一些数学。让我们谈谈你的第二和第三个循环:

对于b的第二个循环的每次迭代,c的第三个循环的迭代次数:

b<1时,1=2^0

b<2时,2=2^1

对于b<4,4=2^2

n=2^logn基数2

上述迭代次数之和为下式之和:

22^logn-1/2-1,给出n

现在,第一个循环运行n次

因此,总体而言,您的代码按n^2的顺序运行

希望这能回答你的问题