关于 (Python) 带有跳过元素的列表迭代的大 O 问题
Big O question about (Python) list iteration with skipping elements
我正与同事就一个大 O 问题发生争执。例如,考虑以下每第 100 个元素打印一次的 Python for 循环:
n = 10000
for i, x in range(0, n, 100):
print(i)
我认为复杂度是 O(log n) 而不是 O(n),因为它的增长不是完全线性的。我认为 O(n) 没有错,但是 O(log n) 不是更精确吗?
谢谢!
首先,如果实际上是O(log n),那么O(n)其实是错误的,不仅仅是不精确。此外,它是 O(n),因为它确实是线性缩放的。由于步进 100,因此循环有 n/100 次迭代,与 n 成线性关系。
我正与同事就一个大 O 问题发生争执。例如,考虑以下每第 100 个元素打印一次的 Python for 循环:
n = 10000
for i, x in range(0, n, 100):
print(i)
我认为复杂度是 O(log n) 而不是 O(n),因为它的增长不是完全线性的。我认为 O(n) 没有错,但是 O(log n) 不是更精确吗?
谢谢!
首先,如果实际上是O(log n),那么O(n)其实是错误的,不仅仅是不精确。此外,它是 O(n),因为它确实是线性缩放的。由于步进 100,因此循环有 n/100 次迭代,与 n 成线性关系。