您能告诉我如何找到这些算法的时间复杂度吗?
(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
}
}
答案 0 :(得分:0)
你很容易找到它。您可以查看最里面的循环,并根据具体情况确定迭代的频率(在这种情况下取决于i和j的值)。
然后你看看第二个循环并找出i和j在内部循环中将具有哪些值,并使用它来计算最内层语句的执行频率,具体取决于中间循环的情况(在这种情况下)取决于i)。
然后你对外循环做同样的事情。只需使用你的大脑,这就是你如何找到它。
只需写:&#34;根据i和j的值,最里面的循环将执行... times&#34;。 &#34;根据i的值,第二个循环将执行值j = .. to ..这意味着最里面的循环将执行... times并将其添加到中间循环的所有迭代中,内循环将执行...次,取决于i&#34;的值。 &#34;最外层循环将使用值i = .. to ...执行,这意味着在外循环的每次迭代中,内循环执行...次。添加它意味着内循环执行... times&#34;。