Non*_*ons 0 python generator time-complexity space-complexity
In python3 range built with help of generators
对数时间— O(log n)当算法在每一步中减少输入数据的大小时,被称为具有对数时间复杂度。例如,如果我们要在生成器的帮助下打印前10位数字,则首先将得到一个元素,因此剩下的9个元素必须处理,然后再得到第二个元素,因此剩下的8个元素必须处理
for index in range(0, len(data)):
print(data[index])
Run Code Online (Sandbox Code Playgroud)
当我检查python生成器的时间复杂度时,它说O(n)。
由于每次它只生成一个输出(因为我们需要这样做),__next__
因此每次将生成1个单位成本。
我可以对此进行解释吗
对数时间复杂度的这种解释是错误的。
如果将输入的大小减少一小部分,而不是固定的数量,则会得到对数复杂度。例如,二进制搜索在每次迭代时将大小除以2,因此它是O(log n)。如果输入大小为,8则需要4迭代,将大小加倍即可16将迭代次数增加到5。