复杂度
创建时间:
字数:412
阅读:
python 内置类型性能分析python 内置类型性能分析
list 内置操作的时间复杂度
1 2 3 4 5 6 7
| index[x] 取值 O(1) index assignment 赋值 O(1) append 尾部追加 O(1) pop 尾部弹出 O(1) pop(i) 指定位置弹出 O(n) insert(i , item) 指定位置插入 O(n) del operater O(n)
|
timeit模块
timeit模块可以用来测试一小段Python代码的执行速度
class timeit.Timer(stmt=’pass’, setup=’pass’, timer=)
Timer 是测量小段代码执行速度的类。
stmt参数是要测试的代码语句(statement)
setup参数是运行代码需要的的设置
timer参数是一个定时器函数,与平台有关
timeit.Timer.timeit(number=1000000)
Timer类中测试语句的执行速度的对象方法。number参数是测试代码时的测试次数,默认为1000000次,方法返回执行飞马的平均耗时,一个float类型的秒数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| from timeit import Timer
def t1(): li = [] for i in range(1000): li.append(i)
def t2(): li = [] for i in range(1000): li = li + [i]
def t3(): li = [i for i in range(1000)]
def t4(): li = list(range(1000))
def t5(): li = [] for i in range(1000): li.extend([i])
def t6(): li = [] for i in range(1000): li.insert(0, 1)
timer1 = Timer("t1()", "from __main__ import t1") print("append:", timer1.timeit(1000))
timer2 = Timer("t2()", "from __main__ import t2") print("+:", timer2.timeit(1000))
timer3 = Timer("t3()", "from __main__ import t3") print("[i for i in range]:", timer3.timeit(1000))
timer4 = Timer("t4()", "from __main__ import t4") print("list(range()):", timer4.timeit(1000))
timer5 = Timer("t5()", "from __main__ import t5") print("extend:", timer5.timeit(1000))
timer6 = Timer("t6()", "from __main__ import t6") print("insert[0]:", timer6.timeit(1000))
|
运行结果
1 2 3 4 5 6
| append: 0.07670579999999999 +: 3.3817863 [i for i in range]: 0.06815369999999987 list(range()): 0.027385799999999794 extend: 0.20605129999999994 insert: 0.7449211
|
转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以邮件至gxnucgb@qq.com
文章标题:复杂度
文章字数:412
本文作者:陈桂彬
发布时间:2019-08-09, 20:35:59
最后更新:2019-08-10, 15:05:13
原始链接:https://github.com/gxnucgb/gxnucgb.github.io/2019/08/09/复杂度/
版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。