运行时间分析

时间:2016-02-05 00:07:11

标签: algorithm for-loop big-o nested-loops analysis

我需要给出以下for循环的运行时间(用big-Oh表示法):

  1. int

  2. sum = 0 for i = 1 to n do for j = 1 to i do sum++

  3. sum = 0 for i = 1 to n do for j = 1 to i^3 do for k = 1 to j do sum++

  4. 非常感谢任何帮助,特别是如果你能解释你是如何得到答案的,那么我也能理解它。

    提前致谢!

    编辑:事后我可能会提到,这些是我无法用我的教科书和笔记弄清楚的,其余的我能够解决。

1 个答案:

答案 0 :(得分:0)

所以我刚开始上课的材料非常相似,所以我可能没有这个位置。我的一般想法是运行时间基本上取决于给定程序中的循环次数。

例如,让我们解决你的问题#1

sum = 0
for i = 1 to n do
    for j = 1 to i do
        sum++
sum2 = 0
for i = 1 to n do
    for j = 1 to i do
        sum2++

由于它的2个嵌套for循环,运行时间呈指数级增长,因为你删除了较小的顺序项(总和++会增加时间但是可以忽略不计),因此你的运行时间为N ^ 2。

进一步采取这个计划

std::exception

由于背靠背循环为2,因此运行时间应为2N ^ 2

希望这有用= D