2015-07-03 54 views
0
int unknown(int n) 
    { 
    int i,j,k=0; 
    for(i=n/2;i<=n;i++) 
    for(j=2;j<=n;j=j+2) 
     k=k+n/2; 
    return k; 
    } 

我提到的複雜性是對的嗎?如果是,怎麼樣?請詳細解釋。該程序如何具有時間複雜性大哦(n^2logn)?

+2

如何解釋爲什麼你認爲這是正確的,然後問你的推理是否有任何錯誤?這會提出更好的問題。 – paisanco

+0

@paisanco說什麼,但也(不太重要)適當地格式化您的代碼,以便於閱讀 – 2015-07-03 17:45:57

+0

@paisanco我以這種方式提出我的問題的原因是因爲我確信答案是正確的。儘管我沒有相信,但由於參考書很少,它的正確性。我沒有漸進分析的流量,這就是爲什麼這樣說。 – angrysumit

回答

0

外循環執行n/2次

內循環執行(n - 2)/ 2次。

(與整數除法忽略截斷效應)

所以複雜性爲O(n^2)。 (假設所有算術運算都是O(1))