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

Is my runtime analysis of the code segment correct?

这类似于这个问题runtime analysis of the following recursive method

我正在尝试分析这段代码

为了分析这个,我看到外循环要执行 n/c 次。然后外层循环每执行运行s,内层循环也会执行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 我不确定是否正确。

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

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

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

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

的最终答案

对于这个问题,下面是如何分析的

外循环 运行 的次数最多是 nc 并且每次外循环的迭代循环 运行s,内循环也会 运行 最多 nc 次。

因此最坏情况大O运行这个算法的时间是O(n2c2)O(n2)