Java 我对代码段的运行时分析正确吗?

Java 我对代码段的运行时分析正确吗?,java,algorithm,for-loop,time-complexity,Java,Algorithm,For Loop,Time Complexity,这与这个问题类似 我试图分析这个代码段 为了分析这一点,我看到外部循环将执行n/c次。然后每次外循环运行时,内循环也会执行n/c次。因此,如果删除常量,则此段将总共运行n^2/c^2或O(n^2) 是否也有类似于幻灯片19的视觉方式可以做到这一点?我试着这样做,但得到了(c*(n)(n+1))/2,我不确定这是否正确 (c*(n)(n+1))/2 =c*(n^2+n)/2 =(c/2)*(n^2+n) 去掉常数并保持n的最高幂给出了O(n^2)这个问题的最终答案,现在我们来分析一下 外循环运行

这与这个问题类似

我试图分析这个代码段

为了分析这一点,我看到外部循环将执行n/c次。然后每次外循环运行时,内循环也会执行n/c次。因此,如果删除常量,则此段将总共运行n^2/c^2或O(n^2)

是否也有类似于幻灯片19的视觉方式可以做到这一点?我试着这样做,但得到了(c*(n)(n+1))/2,我不确定这是否正确

(c*(n)(n+1))/2

=c*(n^2+n)/2

=(c/2)*(n^2+n)


去掉常数并保持n的最高幂给出了O(n^2)

这个问题的最终答案,现在我们来分析一下

外循环运行的次数最多为n⁄c,对于外循环的每次迭代运行,内循环也最多运行n⁄c次


因此,该算法最坏情况下的大O运行时是O(n2⁄c2)或O(n2)

是的,也就是最后一部分不等于n^2/c^2。我不认为这有什么关系,是吗?@I.K.请启发我:),你只是把每个词乘以C吗?
n^2
(C*(n)(n+1))/2中的贡献最大,因为
n
变大了,所以你可以放弃其他所有东西。