-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. 这个while循环的时间复杂度:
- 5. 这个循环的时间复杂度是多少?
- 6. 这个while循环的时间复杂度?
- 7. 这个while循环的时间复杂度
- 8. 嵌套循环的时间复杂度
- 9. 循环的时间复杂度
- 10. 变量循环的时间复杂度
- 11. 循环的θ时间复杂度
- 12. 减少循环的时间复杂度
- 13. 时间复杂度(嵌套循环)
- 14. 如何表示Big O(n!)for循环的时间复杂度?
- 15. 如何找到while循环的时间复杂度(大O)?
- 16. 时间复杂度:while循环嵌套for循环[java]
- 17. 正确时间复杂度
- 18. 特定嵌套for循环的时间复杂度
- 19. 这两个嵌套for循环的时间复杂度是多少?
- 20. 算法时间复杂度分析(三个嵌套for循环)
- 21. 这个三重循环的复杂性?
- 22. 为什么这个循环需要O(2^n)时间复杂度?
- 23. 如何确定此算法的时间复杂度?
- 24. 如何确定此代码的时间复杂度?
- 25. 如何找到这个程序的时间复杂度?
- 26. 包含for循环的递归函数的时间复杂度
- 27. 如何确定单工时间复杂度(即最大流量)
- 28. 嵌套在while循环中的for循环的时间复杂度是多少?
- 29. 嵌套while循环的时间复杂度?
- 30. 奇怪嵌套循环的时间复杂度
为什么你认为它只会去10次 –
你试过'n = 2'吗? –