Time complexity 计算时间复杂度

Time complexity 计算时间复杂度,time-complexity,Time Complexity,我在计算内部循环的时间复杂度时被难住了 让我们考虑下面的情况。 案例1: for(int i = 0; i <= n; i++) - O(n) { for(int j = 0; j <= i; j++) - O(?); { //Some thing goes here } } for(inti=0;i总的时间复杂度是O(n²)(事实上,它是偶数) 内循环具有复杂性O(i)。但是,n与i相关,因此简单地说整个事物具有复杂性O(ni)是错误

我在计算内部循环的时间复杂度时被难住了

让我们考虑下面的情况。

案例1:

for(int i = 0; i <= n; i++) - O(n)
{
    for(int j = 0; j <= i; j++)  - O(?);
    {
          //Some thing goes here
    }
}

for(inti=0;i总的时间复杂度是O(n²)(事实上,它是偶数)


内循环具有复杂性O(i)。但是,n与i相关,因此简单地说整个事物具有复杂性O(ni)是错误的。内循环的主体将运行0+1+2+⋯ + n=(n²+n)/2=Θ(n²)次。

在我讨论你的要求之前,我将解释一个简单的例子。
我们根据最内部循环的执行次数来校准时间复杂度
考虑这种情况:

for(i=0;i<n;i++){
    for(j=0;j<n;j++){
    ....
    }
}

对于(i=0;iHi,你能分享更多吗?我对这种执行时间复杂度还不熟悉..而且请分享更多关于等式(n²+n)/2=Θ(n²)时报。谢谢。@user3663241:对我来说,评论不是全面介绍渐近记数法的最佳场所。然而,的第15.5节是一个很好的描述。嗨,谢谢。得到了解释。但只有一个问题。n*[n(n+1)/2]是最终结果。在做了数学运算后,我可以得到(n^3+n^2)/2……我可以知道,如何得出最后的答案O(n^2)……请你先澄清一下这一个……谢谢你……它不是n*[n(n+1)/2]。它只是n(n+1)/2。如果它是(n^3+n^2)/2,它将是O(n^3)。嗨,但是这个O(n)属于外环,你没有包括在数学中。我是指外环*内环,所以它就像n*[n(n+1)]/2右…[此处O(n)为外环,n(n+1)/2为内环。]请纠正我,如果我错了,请让我了解更多。谢谢你的进步。考虑我的第一个例子代码。每个循环从0运行到N.在外环内循环只有N个时间。因为我们考虑外环,它变成了N ^ 2。“对于外循环的每一次迭代,内循环被执行n次”。所以它是n次n(nn)。如果外循环运行m次,内循环运行n次,那么它将是(mn),即O(m*n)。谢谢你的回答。是的,我得到了你的解释。但是根据你上次的回答,O(m)=n和O(n)=n(n+1)/2。所以O(m*n)=产生n*[n](n+1)/2]好的..我无法理解这一条.请你在回复中再补充一点….谢谢。
for(int i=0;i<=n;i++){
    for(int j=0;j<=i;j++){
      //Some thing goes here
    }
}