关于 (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 成线性关系。