如何为 python 代码找到合适的复杂度

How can I find the right complexity for the python code

下面的复杂度是多少,

在我的理解中应该是 for inside for,所以 n**2。 但我理解是n**3。 哪个是对的?

n=int(input())
L=[]
for i in range (n):
    for j in range (n):
        L.append(i*j)
for i in range (n):
    l=L[:]+[i]

浅列表复制的时间复杂度——例如 list.copy() 或切片列表[:]——与列表中的元素数量成线性关系。对于 n 个列表元素,时间复杂度为 O(n)。为什么?因为 Python 遍历列表中的所有元素并将对象引用的副本添加到新列表(按引用复制)。

当你运行:

for i in range (n):
    l=L[:]+[i]

代码 运行s n * len(L) 次。因为 Ln*n 长,所以它将是 n*n*nO(n**3).