2015-04-26 43 views
-2

我有一個函數確定與內環重複時間循環的大O運行時是常量

for(int i=0;i<n; i++) 
{ 
    b[i]=0; 
    for(int j=0;j<5;j++) 
    { 
    b[i]=a[j+i] 
    } 
} 

我需要計算上述功能的大O。我的答案是:
內環運行5n時間=>O(n)。 所以總的複雜性是O(n)。我想我的計算中有一個錯誤,但我不知道我的錯誤在哪裏。

回答

1

不,你沒有犯任何錯誤。你的想法是正確的,並且是你完美的解決方案!

外循環將運行n次,內循環運行5(恆定)次。

因此,循環複雜度爲O(5 * n)= O(n),其他語句具有恆定的時間複雜度。

因爲,5 * n次執行程序意味着O(n)程序的時間複雜度爲

+0

我的老師給我一個要求,我必須改變功能有最小的複雜性。我沒有任何理想來解決它們。你能幫我嗎 – user2083943

+0

發表一個新問題,並把鏈接通過我這裏!我會盡力幫助你。最好的祝願@ user2083943。 –

+0

現在我必須讓一個程序的目標與上面的程序相同,但新程序的複雜度最低 – user2083943