【问题标题】:Calculating Time Complexity of a Method Call within a Method call计算方法调用中方法调用的时间复杂度
【发布时间】:2017-02-18 20:46:28
【问题描述】:

http://imgur.com/a/efinr

所以我的任务是在 java 中创建方法,这些方法使用 HugeIntegers(它们是在其索引中包含数字的数组,例如 1111 将是 [1,1,1, 1])。

编写代码后,我们被要求分析它的时间复杂度(即 Big theta 复杂度类),我在分析部分代码时遇到了一些麻烦(请参阅链接)。

我知道 x1.add(diff) 会给我大 theta (n),其中 n 是 HugeInteger 的位数,并且 compareTo(x2) 也会给我大 theta (n)。 while 循环内的内容也是大 theta (n)。 现在,这段代码的总时间复杂度是 (n^3) 还是 n^2?我在 while 循环条件上遇到了一些麻烦,因为我不确定 n 是否应该相加或相乘。不过,我知道无论结果是什么,都会乘以 while 循环内的 n。

非常非常感谢任何帮助。一周的大部分时间里,我一直坚持这一点。

【问题讨论】:

  • 下次只需将您的代码放入您的问题中。这比点击链接查看图片更容易。

标签: java algorithm time complexity-theory


【解决方案1】:

循环条件将在每次循环迭代中运行一次。循环的内容也将在每次循环迭代时运行一次。所以你可以添加这些。然后,当然,乘以循环运行的次数。如果条件是 (n) 并且循环体是 (n),那么它们仍然是 (n)。如果循环运行 (n) 次,则总数为 (n^2)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-14
    • 2016-02-27
    • 2016-03-17
    • 1970-01-01
    • 2017-02-28
    • 2011-06-21
    • 1970-01-01
    • 2021-08-25
    相关资源
    最近更新 更多