所以我的任务是在java中创建方法,用HugeIntegers进行基本操作(加,减,乘)(这是在索引中包含数字的数组,例如.1111将是[1,1, 1,1])。
在编写代码之后,我们被要求分析它的时间复杂度(即Big theta复杂性类),并且在分析我的代码的一部分时遇到一些麻烦(参见链接)。 / p>
我知道x1.add(diff)会给我大的theta(n),其中n是HugeInteger的位数,而compareTo(x2)也会给我大的theta(n)。 while循环内的内容也是大的theta(n)。 现在,这段代码的总时间复杂度是(n ^ 3)还是n ^ 2?我对while循环条件有点麻烦,因为我不确定n是否应该加或加。我知道无论结果是什么,都会乘以while循环中的n。
非常非常感谢任何帮助。在一周的大部分时间里,我一直坚持这一点。
答案 0 :(得分:0)
循环的条件将在每次循环迭代中运行一次。循环的内容也将在每次循环迭代时运行一次。所以你可以添加它们。然后,当然,乘以循环运行的次数。如果条件是(n)并且循环体是(n)那么它们一起仍然是(n)。如果循环运行(n)次,则总数为(n ^ 2)。