Time complexity 条件为(j=i+;1)的嵌套循环的渐近分析
我正在试图理解本页上big O的示例: (i=0;iTime complexity 条件为(j=i+;1)的嵌套循环的渐近分析,time-complexity,big-o,Time Complexity,Big O,我正在试图理解本页上big O的示例: (i=0;i
{
对于(j=i+1;j
我不明白,如果I=0
,为什么内部循环将运行N
。如果i=0
,则j=1
,因此,内环的迭代次数应为N-1
。我理解为什么这个循环的复杂性是O(n^2)
。我不明白的是,为什么内部循环以迭代次数开始,而不是N-1
Big-O
,因为这是O(N^2)
外环是O(n)
,内环是O(n-1)
因此,有效时间复杂度是O(n^(n-1))=O(n^2-n)
现在对于较大的n
,n^2
的值将显著高于n
的值,并且净结果将取决于n^2
因此,时间复杂度将为
O(n^2)
您的链接有轻微错误。实际上,内部循环从N-1
迭代开始,而不是从N
开始,但结果保持不变
从第一个错误开始,他们在每次迭代中都会错过1次。我猜他们忘了+1这个
j=i+1
。谢谢。我明白为什么是O(n^2)。我不明白为什么在我上传的链接中,内部循环将以N开始运行,而不是N-1@EminMammadov他们有一个轻微的错误,但它不会改变结果。是的。我也这么想。谢谢,我理解其中的复杂性。我不明白为什么在我上传的链接中,内部循环以N
开头,而不是N-1
for (i = 0; i < N; i++) {
for (j = i+1; j < N; j++) {
sequence of statements }
}