【问题标题】:Time Complexity of a for loopfor循环的时间复杂度
【发布时间】:2015-01-17 18:08:21
【问题描述】:

所以我不是很了解这里的一些事情,在计算for(int i = 1; i <= n; i++) 中的步骤时,答案是:

1 代表分配 int i = 1,n+1 代表 i <= n,n 代表 i++,总计 2n+2。我的困惑分为三个部分:

1.) 分配int i = 1; 不也是n 吗?如果假设 n = 5,我们最终不会分配 int i = 2、int i = 3... 等等吗?

2.) 对于i <= n,它是 n+1 是因为你正在执行 n 次检查,而 +1 是错误的吗?

3.) 最后,是i++n,因为您正在执行 n 次加法?

【问题讨论】:

  • 看起来您需要培养一些常识以及阅读和解释初学者 Java 教程的能力。您真的认为将 1 分配给变量会分配 2 和 3 给它吗?

标签: java algorithm data-structures big-o time-complexity


【解决方案1】:

For 循环看起来像 for(INIT; CONDITION; INCREMENT) { /* ... */ }。 INIT 部分只执行一次。这相当于:

INIT
while(CONDITION)
{ /* ... */
  INCREMENT
}

【讨论】:

    【解决方案2】:

    初始化int i=1;在循环开始时只执行一次,与n无关。

    至于2)和3),你是对的。

    【讨论】:

    • 好吧,我明白了,初始化,由于某种原因,赋值这个词让我有点困惑。我在考虑增量,然后将值分配给 i 这当然不是互斥的。我对它的研究有点太多了。谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 2015-02-16
    • 2013-09-13
    • 1970-01-01
    相关资源
    最近更新 更多