简单算法的时间复杂度

时间:2015-02-17 14:12:21

标签: time-complexity

您能告诉我如何找到这些算法的时间复杂度吗?

(1)
    for i←1 to n
        for j←1 to i
            for k ← j to i
                print(i+j+k)

(2)
    for i=1 to n
    {
        for j = 1 to i
        {
            for k = 1 to j
                print k
        k = 2
        while k < i
            k = k^2
        }
    }

1 个答案:

答案 0 :(得分:0)

你很容易找到它。您可以查看最里面的循环,并根据具体情况确定迭代的频率(在这种情况下取​​决于i和j的值)。

然后你看看第二个循环并找出i和j在内部循环中将具有哪些值,并使用它来计算最内层语句的执行频率,具体取决于中间循环的情况(在这种情况下)取决于i)。

然后你对外循环做同样的事情。只需使用你的大脑,这就是你如何找到它。

只需写:&#34;根据i和j的值,最里面的循环将执行... times&#34;。 &#34;根据i的值,第二个循环将执行值j = .. to ..这意味着最里面的循环将执行... times并将其添加到中间循环的所有迭代中,内循环将执行...次,取决于i&#34;的值。 &#34;最外层循环将使用值i = .. to ...执行,这意味着在外循环的每次迭代中,内循环执行...次。添加它意味着内循环执行... times&#34;。