我似乎理解了更简单循环的基本概念......第一个循环在 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 真的让我陷入了外循环。
sum = 0;
for( i = 1; i < n; i *= 2 )
for( j = 0; j < n; j++ )
++sum;
根据我的尝试...外循环是 O(log(n)),内循环是 O(n),所以总是 O(n log(n))?