2017-10-09 46 views
0
i := 1 
t := 0 
while i <= n: 
    t := t + i 
    i := 2i 

所以我把這個僞代碼中的操作數目計爲3n + 2,並且在這之後確定該算法必須是O(n)。我對while循環感到困惑,因爲它小於或等於n而不是小於n,這是否會增加操作的數量?一個算法的大O表示法

+0

你缺少的是't:= 2i' ....對循環的* next *迭代的影響。重新計數。或者,計算'i'接管多次迭代的值。 –

回答

2

我算在這個僞代碼爲3N + 2

如何操作的數量?它應該是因爲在每一步接近了很多O(日誌(N)),(除了第一個步驟,這是通過)你基本上是這樣做的:

我:= 3I

因此,我正在呈指數級增長,而不是線性增長。做n個真的很大(> 1000)的例子,看看我能多快趕上。

+0

哦,我現在明白了。謝謝 –