关于带有跳过元素的(Python)列表迭代的大O问题



我和一位同事就一个大O问题发生了争执。例如,考虑以下每100个元素打印一次的Python For循环:

n = 10000
for i, x in range(0, n, 100):
print(i)

我认为复杂性是O(logn(,而不是O(n(,因为它不是线性增长的。我认为O(n(没有错,但O(logn(不是更精确吗?

谢谢!

首先,如果它实际上是O(logn(,那么O(n(实际上是错误的,而不仅仅是不精确的。此外,它是O(n(,因为它确实是线性缩放的。由于你以100为步长,你有n/100次循环迭代,这相对于n是线性的。

最新更新