Python:按乘法运算符时间复杂度创建列表

Shi*_*maa 5 python big-o

Python 使用的时间复杂度是多少

a = [1]*n 
Run Code Online (Sandbox Code Playgroud)

对比

for i in range(n): 
    a.append(1)
Run Code Online (Sandbox Code Playgroud)

都是 O(n) 还是第一个 O(1)?

Ign*_*ams 5

前者是 O(n),因为使用了PyList_New()已知大小。后者比 O(n) 稍差,因为需要在几次追加后调整列表的大小

  • 后者*是*“O(n)”。 (3认同)