我对代码段的运行时分析是否正确?

时间:2015-02-07 02:41:21

标签: java algorithm for-loop time-complexity

这与此问题类似runtime analysis of the following recursive method

我正在尝试分析此代码段 enter image description here

为了分析这个,我看到外循环将执行n / c次。然后每次外循环运行时,内循环也将执行n / c次。因此,总的来说,如果你删除常量,这个段将运行n ^ 2 / c ^ 2或O(n ^ 2)。

是否还有一种视觉方式可以做到这一点,类似于(来自http://courses.cs.washington.edu/courses/cse373/15wi/lectures/lecture3.pdf)幻灯片19?我尝试过这样做,但得到了(c *(n)(n + 1))/ 2我不确定是对的。

enter image description here

2 个答案:

答案 0 :(得分:0)

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

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

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

丢弃常数并保持n的最高功率给出O(n ^ 2)

的最终答案

答案 1 :(得分:0)

对于这个问题,现在是如何分析它

外循环运行的次数是 n / c ,并且每次外循环的迭代运行时,内循环也将最多运行< sup> n / c 次。

因此,此算法的最坏情况Big O运行时为 O( n 2 / c 2 O(n 2