
时间复杂度的几条基本计算规则



python内置类型性能分析
from timeit import Timer
def t1(n):
l = []
for i in range(n):
l.append(i)
def t2(n):
l = []
for i in range(n):
l += [i]
# print(l)
def t3(n):
l = []
for i in range(n):
l = l + [i]
def t4(n):
l = []
for i in range(n):
l.insert(0, i)
def t5(n):
l = []
for i in range(n):
l.extend([i])
def t6(n):
l = list(range(n))
def t7(n):
l = [i for i in range(n)]
timer1 = Timer(stmt='t1(10000)', setup='from __main__ import t1')
print('[].append', timer1.timeit(100)) # 100 表示timer1里面的函数执行的次数
timer2 = Timer(stmt='t2(10000)', setup='from __main__ import t2')
print('[]+=', timer2.timeit(100))
timer3 = Timer(stmt='t3(10000)', setup='from __main__ import t3')
print('[]+', timer3.timeit(100))
timer4 = Timer(stmt='t4(10000)', setup='from __main__ import t4')
print('[]insert()', timer4.timeit(100))
timer5 = Timer(stmt='t5(10000)', setup='from __main__ import t5')
print('[].extend()', timer5.timeit(100))
timer6 = Timer(stmt='t6(10000)', setup='from __main__ import t6')
print('list(range)', timer6.timeit(100))
timer7 = Timer(stmt='t7(10000)', setup='from __main__ import t7')
print('列表表达式', timer7.timeit(100))
n = 10000,循环100次的结果
[].append 0.09899567431773199
[]+= 0.13608293246361777
[]+ 18.673876795031823
[]insert() 2.3175882919989483
[].extend() 0.16939992310249252
list(range) 0.027055054353276375
列表表达式 0.04889544702006532
[] = [] + [] 的时间最长,尽量避免使用这种方法
2043

被折叠的 条评论
为什么被折叠?



