【发布时间】:2013-11-05 14:20:07
【问题描述】:
我对这个 SO 帖子有疑问:Understanding How Many Times Nested Loops Will Run
其中 3 个嵌套 for 循环的通用公式是:n(n+1)(n+2)/3。我真的不知道为什么第二个内循环运行 n+1 次而外循环运行 n 次(内循环在退出 for 循环之前不会再运行一次吗?无论哪种方式......一般公式是
n(n+1)(n+2)...(n+r-1)
---------------------
r!
这里,r 是嵌套循环的数量。
我想知道这个公式对于嵌套循环是否总是相同的,或者它是否根据 for 循环内的比较而改变...如果它是基于比较,那么如果在考试中,我如何确定公式我得到了一些不同的for循环?如果 for 循环的比较与创建该公式的 SO 帖子中的比较不同,我该如何生成或提出这个公式?
【问题讨论】:
-
只是算术级数的总和。您可以使用任何您想要的方法计算迭代总数。
-
@Mikhail 我不太明白如何推导出公式。
-
对于未知代码的复杂度没有通用的公式。 “3 个嵌套循环”对算法的定义不够好,无法做出任何估计。
-
@AlexeiLevenkov 在内部循环的局部计数器变量是外部循环的局部计数器变量的函数的情况下,我如何推导出公式?所以说一个 for 循环是 (i=0; i