我似乎理解了简单循环的基本概念,就像这样......第一个循环在O(n)中运行,内部循环也是如此。因为它们都是嵌套的,所以可以乘以得到总运行时间O(n^2)。循环的运行时间
sum = 0;
for (i = 0; i < n; i++)
for j = 0; j < n; j++)
++sum;
虽然当事情开始转变时,我完全丧失了解如何解决问题。有人可以向我解释如何计算以下两种运行时间吗?此外,任何可以帮助我改进的易于理解的参考链接也是值得赞赏的。谢谢!
sum = 0;
for(i = 0; i < n; i += 2)
for(j = 0; j < n; j++)
++sum;
我唯一能从中得到的是内循环在O(n)中运行。 i + = 2真的让我在外部循环中脱颖而出。我的尝试...外部循环是O(log(n)),内部是O(n),所以总数是O(n log(n))???????????????????????????????????
提示:“+ = 2”意味着它的迭代次数与“++”的迭代次数相同。 – harold
所以这意味着外循环运行在O(n/2)? –
是的外部循环需要n/2但记住我们有很大数量的n,所以就像2n会变成O(n)那样n/2会变成O(n)。 – Alistair