当前位置: 首页 > 知识库问答 >
问题:

循环复杂性

仇经武
2023-03-14

如果我有下面的for循环:

for(k = 1; k <= n; ++k){
    for(j = 1; j * j <= k; ++j){
        //O(1) operations
    }
}

我知道外环将迭代n次,而内环将为每kth从外环迭代一次楼(sqrt(k))

因此,为了确定时间复杂度,我们有一些类似于

\sum{k=1}^{n}\floor{\sqrt{k}

不确定如何继续并得到一个封闭形式的时间复杂度。

共有2个答案

仲孙凡
2023-03-14

外循环被迭代n次次,内循环被迭代sqrt(n)次。当一个循环在另一个循环中时,你会增加它们的复杂性。因此它在O(n^1.5)

颛孙子民
2023-03-14

我想说,你需要整合sqrt(n)=

 类似资料:
  • 我想知道下面代码的时间复杂度是O(n^3)还是O(n^2)

  • 这段代码的时间复杂度是多少?外循环运行n次,但我不确定内循环。如果内环对于i的每个值一直运行到n,它能是O(n^2)吗?

  • 我很难理解算法分析,尤其是下面的例子: 所以我的理解是,外循环是,当我乘以一个常量时,我不确定是否有任何区别。 不过,最让我困惑的是内部循环。我认为它是,因为j被常数递减,但我不确定和

  • 今天,我和我的同事就一个特定的代码片段发生了一个小争论。代码看起来像这样。至少,这是他想象的那样。 他希望我删除第二个循环,因为这会导致性能问题。 然而,我确信,因为我在这里没有任何嵌套循环,所以无论我放了多少个顺序循环(我们只有2个),复杂度总是O(n)。 他的论点是,如果< code>n是1,000,000,并且循环需要5秒,那么我的代码将需要10秒,因为它有2个for循环。这个说法之后我就糊

  • 我需要计算C#方法的圈复杂度,并需要根据FXcop 12.0中的CC值定义规则。 我发现像Code Metrics这样的工具提供了计算CC值的功能,但我不知道如何在代码中使用它。基本上,我的要求是通过声纳报告的CC值。 如果有人为此编写了自定义规则或任何想法,请帮助

  • 请考虑以下算法- 时间和空间的复杂性是如何被发现的?