0
i := 1
t := 0
while i <= n:
t := t + i
i := 2i
所以我把這個僞代碼中的操作數目計爲3n + 2,並且在這之後確定該算法必須是O(n)。我對while循環感到困惑,因爲它小於或等於n而不是小於n,這是否會增加操作的數量?一個算法的大O表示法
i := 1
t := 0
while i <= n:
t := t + i
i := 2i
所以我把這個僞代碼中的操作數目計爲3n + 2,並且在這之後確定該算法必須是O(n)。我對while循環感到困惑,因爲它小於或等於n而不是小於n,這是否會增加操作的數量?一個算法的大O表示法
我算在這個僞代碼爲3N + 2
如何操作的數量?它應該是因爲在每一步接近了很多O(日誌(N)),(除了第一個步驟,這是通過)你基本上是這樣做的:
我:= 3I
因此,我正在呈指數級增長,而不是線性增長。做n個真的很大(> 1000)的例子,看看我能多快趕上。
哦,我現在明白了。謝謝 –
你缺少的是't:= 2i' ....對循環的* next *迭代的影響。重新計數。或者,計算'i'接管多次迭代的值。 –