Java 分析复杂度,以内部为单位,以第一个为单位,以第二个为单位
第一个循环运行n次。 第二个for循环运行logn次。 但是第三个循环取决于第一个循环,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 这是有道理的,对吧?第一个循环在线性时
如果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的顺序运行 希望这能回答你的问题