-1
A
回答
0
讓我們說n = 1.1 然後它會去10次,如果n = 1.2循環會繼續17次 如果n = 2它會繼續50次,當n> = 101循環會重複100次,即使N = 10^10000你還能找出
+0
你能解釋一下嗎? –
0
不幸的是你錯了它,它是O(n)
或O(1)
這是立即的事實清楚,它不可能是O(1)
,因爲它需要對於不同的值n
(甚至看n = 1,2,3,4,5)的迭代次數不同,並且它不能是O(n)
,因爲它不會線性增長。
即使通過一些手動計算,你也可以清楚地看到它不會總是運行10次。檢查以下簡短的Python程序:
def t(n):
x = 1
c = 0
while x < n:
c += 1
x += n/100
return c
a = []
for i in range(10000):
a += [i/100 + 1]
with open("out.csv","w") as f:
for i in a:
f.write(str(i) + "," + str(t(i)) + "\n")
使用Excel或其他應用程序,你可以很容易地走勢看下面的曲線中的迭代次數:
正是在這個不清楚指出所採用的迭代次數爲{0:100}
範圍內的對數,其中n < 1
取0次迭代,n > 100
取100次。所以雖然Big-O符號不是我最好的主題,但我猜測時間複雜度是O(log(n))
。
相關問題
- 1. 這個循環的時間複雜度
- 2. 如何確定Python中遞歸循環的時間複雜度?
- 3. 一個循環的時間複雜度
- 4. 這些簡單循環的時間複雜度如何計算?
- 5. 這個while循環的時間複雜度?
- 6. 這個while循環的時間複雜度
- 7. 證明這個雙循環的時間複雜度是O(n)
- 8. 這個while循環的時間複雜度:
- 9. 這個循環的時間複雜度是多少?
- 10. 時間這雙循環的複雜性
- 11. while循環的時間複雜度
- 12. 嵌套循環的時間複雜度
- 13. 嵌套循環的時間複雜度
- 14. 變量循環的時間複雜度
- 15. 循環的時間複雜度
- 16. 減少循環的時間複雜度
- 17. 循環的θ時間複雜度
- 18. 循環的時間複雜度
- 19. 時間複雜度(嵌套循環)
- 20. 時間複雜度分析循環:
- 21. 嵌套循環時間複雜度
- 22. 如何找到這3個嵌套循環的時間複雜度?
- 23. 這些循環1和2的時間複雜度是多少
- 24. 如何計算這個循環的複雜度?
- 25. 如何找到while循環的時間複雜度(大O)?
- 26. 如何表示Big O(n!)for循環的時間複雜度?
- 27. 時間複雜度環
- 28. 時間複雜度:while循環嵌套for循環[java]
- 29. 正確時間複雜度
- 30. 特定嵌套for循環的時間複雜度
爲什麼你認爲它只會去10次 –
你試過'n = 2'嗎? –