2012-10-11 48 views
1

我想問一個關於時間複雜度的問題。基於步數計算時間複雜度的方法

Sum (array,n) 
{ 
1.1 total_sum = 0; 
1.2 for (i=0;i<n;i++) 
1.2.1 total_sum = total_sum +array[i]; 
1.3 return total_sum; 
} 

1.2語句中的總步數爲2(N + 1).. 誰能告訴我,爲什麼它是2(N + 1)?

回答

0

說,i = n-1。它會增加,循環返回;再做一次比較,這次它評估爲假(因爲我現在等於n)。總而言之,你運行這個0,1,...,n次,每次執行兩個操作 - 一起2(n + 1)。請注意,i ++語句只被計算n次,但在循環開始處有一個額外的語句(i = 0)。

+0

爲什麼是2(n + 1)而不是n + 1? – user1707340

+0

因爲你做(i)比較和(ii)增量。 – January

+0

表示它一次增加n + 1,它比較i user1707340