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)?
我想問一個關於時間複雜度的問題。基於步數計算時間複雜度的方法
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)?
說,i = n-1。它會增加,循環返回;再做一次比較,這次它評估爲假(因爲我現在等於n)。總而言之,你運行這個0,1,...,n次,每次執行兩個操作 - 一起2(n + 1)。請注意,i ++語句只被計算n次,但在循環開始處有一個額外的語句(i = 0)。
爲什麼是2(n + 1)而不是n + 1? – user1707340
因爲你做(i)比較和(ii)增量。 – January
表示它一次增加n + 1,它比較i
user1707340