Java 指数条件下的大O/时间复杂度
有人能教我当你的for循环中有一个多项式作为条件时,如何计算时间复杂度吗?例如Java 指数条件下的大O/时间复杂度,java,loops,for-loop,big-o,Java,Loops,For Loop,Big O,有人能教我当你的for循环中有一个多项式作为条件时,如何计算时间复杂度吗?例如 for(i = 1; i < n^4; i = n * i){ ... } (i=1;i
for(i = 1; i < n^4; i = n * i){
...
}
(i=1;ii
乘以n
,因此将有4次
迭代,并且假设每次迭代的工作量恒定,时间复杂度将为O(1)
在第一次迭代中,i=1
在第二次迭代中,
i=n
在第三次迭代中,
i=n^2
在第四次迭代中,
i=n^3
然后我到达
n^4
,我们退出循环。因为i
在每次迭代中都乘以n
,所以会有4
次迭代,并且假设每次迭代做的工作量恒定,时间复杂度将是O(1)
在第一次迭代中,i=1
在第二次迭代中,
i=n
在第三次迭代中,
i=n^2
在第四次迭代中,
i=n^3
然后我到达
n^4
,我们退出循环。基于此(最后一张幻灯片):
因此,基于此(最后一张幻灯片),T(n)是O(1):
因此,T(n)是O(1)试着在一张纸上遵循算法,你会发现如何计算算法的时间复杂度。我认为它是多项式,而不是指数,甚至比多项式更好;它是常量。
n^4
在Java中不是指数运算,而是按位异或运算。试着在一张纸上遵循算法,你会发现如何计算算法的时间复杂度。我认为它是多项式,而不是指数运算,甚至比多项式更好;它是常量。n^4
在Java中不是指数运算,它是按位异或运算。所以当提到这个问题时,关于x^n的指数条件,n=迭代次数吗?@12341234检查i
变量在每次迭代中是如何增加的。这将帮助您定义计算O时间复杂度的公式。@12341234不,迭代次数不是n的函数。这就是为什么它是常数-O(1)。@LuiggiMendoza谢谢,我明白了。非常感谢。我重写了每个步骤/迭代#thestruggleisreal@Eran我只是想知道,由于时间复杂性,我可以把它写成T(n)=4=O(4),因为有4个迭代?对不起,我真的不熟悉BigO符号。当提到这个问题时,关于指数条件,其中x^n,n=迭代次数吗?@12341234检查i
变量在每次迭代中是如何增加的。这将帮助您定义计算O时间复杂度的公式。@12341234不,迭代次数不是n的函数。这就是为什么它是常数-O(1)。@LuiggiMendoza谢谢,我明白了。非常感谢。我重写了每个步骤/迭代#thestruggleisreal@Eran我只是想知道,由于时间复杂性,我可以把它写成T(n)=4=O(4),因为有4个迭代?对不起,我真的不熟悉BigO符号