我想了解如何計算if語句的時間複雜度。 我得到了這個問題:if(N^2%N == 0)的大O符號的時間
sum = 0;
for(i=0;i<n;i++)
{
for(j=1;j<i*i;j++)
{
if(j%i==0)
{
for(k=0;k<j;k++)
{
sum++;
}
}
}
}
現在,我明白,線(1)和(2)我有n個^ 3個,並且根據我的教授的總時間爲n^4,我也看到if語句正在測試以檢查n^2/n的其餘部分是否爲0,並且我認爲第(4)行中的for循環應該是n^2,但是我不知道如何計算它(3)至(4)的順序總共具有O(n)。歡迎任何幫助。提前致謝。
我看不出總的時間怎麼可能是'O(n^4)' - 它看起來像'O(n^3)'給我。 –
@DavidSchwartz這是因爲第二個循環運行到'我*我',這是'n^2'次。 – user58697
@ user58697但是它每次增加'i'(當'j'不是'i'的倍數時,什麼都不會發生)。 –