python常用的数据结构及算法————时间复杂度
2018-08-23 22:06
393 查看
对于时间复杂度的大O表示,大家自行百度,这里不做赘述 。
对于时间复杂度的计算,应该遵循以下规则:
①对于m个循环,时间复杂度的计算将每个循环的循环次数相乘即可;
②对于条件判断,以条件下判断下时间复杂度最多的为准;
③对于一般的顺序操作,每一步执行累加即可;
python中存在模块timeit可以用来检测和比较一小段python代码的运行时间(因为程序运行的时间也跟电脑的配置有很大的关系)
class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)
Timer是测量小段代码执行速度的类。
stmt参数是要测试的代码语句(statment);
setup参数是运行代码时需要的设置;
timer参数是一个定时器函数,与平台有关。
timeit.Timer.timeit(number=1000000)
Timer类中测试语句执行速度的对象方法。number参数是测试代码时的测试次数,默认为1000000次。方法返回执行代码的平均耗时,一个float类型的秒数。
下面是timeit的示例
[code]def test1(): l = [] for i in range(1000): l = l + [i] def test2(): l = [] for i in range(1000): l.append(i) def test3(): l = [i for i in range(1000)] def test4(): l = list(range(1000)) from timeit import Timer t1 = Timer("test1()", "from __main__ import test1") print("concat ",t1.timeit(number=1000), "seconds") t2 = Timer("test2()", "from __main__ import test2") print("append ",t2.timeit(number=1000), "seconds") t3 = Timer("test3()", "from __main__ import test3") print("comprehension ",t3.timeit(number=1000), "seconds") t4 = Timer("test4()", "from __main__ import test4") print("list range ",t4.timeit(number=1000), "seconds") # ('concat ', 1.7890608310699463, 'seconds') # ('append ', 0.13796091079711914, 'seconds') # ('comprehension ', 0.05671119689941406, 'seconds') # ('list range ', 0.014147043228149414, 'seconds')
阅读更多
相关文章推荐
- 数据结构 常用的算法的时间复杂度和空间复杂度
- 算法和数据结构 第一章:算法的时间复杂度
- 各算法与数据结构时间复杂度一览
- 常用数据结构2——栈,实现PUSH、POP和取最小值操作算法时间复杂度为o(1)
- 速查表:常用算法和数据结构的复杂度
- 数据结构--算法(时间复杂度和空间复杂度)
- 常用的数据结构操作与排序算法的时间和空间复杂度
- 常用数据结构的时间复杂度
- 数据结构-算法的时间复杂度
- 常用算法和数据结构的复杂度介绍
- 重读数据结构之--算法的时间空间复杂度
- php 常用算法和时间复杂度
- 数据结构和算法_02时间复杂度和空间复杂度
- 算法常用的时间复杂度(log(n),sqrt(x),n,n*log(n),n^2,n^3,2^n)的函数坐标图
- 速查表:常用算法和数据结构的复杂度
- 常用算法和数据结构的复杂度速查表
- 数据结构-算法效率的度量-时间复杂度和空间复杂度
- 数据结构:算法的时间复杂度求法
- 常用的算法的时间复杂度和空间复杂度