我需要给出以下for循环的运行时间(用big-Oh表示法):
int
sum = 0
for i = 1 to n do
for j = 1 to i do
sum++
sum = 0
for i = 1 to n do
for j = 1 to i^3 do
for k = 1 to j do
sum++
非常感谢任何帮助,特别是如果你能解释你是如何得到答案的,那么我也能理解它。
提前致谢!
编辑:事后我可能会提到,这些是我无法用我的教科书和笔记弄清楚的,其余的我能够解决。
答案 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