标签:无法 次数 toc 代码示例 如何 解决 操作 ret timer
算法概述
算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用。
算法是独立存在的一种解决问题的方法和思想。
对于算法而言,实现的语言并不重要,重要的是思想。
算法的五大特性
消耗计算机资源和执行效率(无法直观)
计算算法执行的耗时(不推荐,因为会受机器和执行环境的影响)
时间复杂度(推荐)
评判规则:量化算法执行的操作/执行步骤的数量
表现形式:大O记法
常见的时间复杂度:
O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
代码示例:计算下列算法的时间复杂度
a=5
b=6
c=10
for i in range(n):
for j in range(n):
x = i * i
y = j * j
z = i * j
for k in range(n):
w = a*k + 45
v = b*b
d = 33
# 时间复杂度:4+3n**2+2n==>n**2
timeit模块:该模块可以用来测试一段python代码的执行速度/时长。
Timer类:该类是timeit模块中专门用于测量python代码的执行速度/时长的。原型为:class timeit.Timer(stmt=‘pass‘,setup=‘pass‘)。
代码示例:
import timeit
def test01():
alist = []
for i in range(1,1001):
alist += [i]
return alist
def test02():
alist = []
for i in range(1,1001):
alist.append(i)
return alist
def test03():
alist = list(range(1,1001))
return alist
def test04():
alist = [i for i in range(1,1001)]
return alist
if __name__ == '__main__':
#stmt:待执行的代码块
#setup:
timer = timeit.Timer(stmt='test01()',setup='from __main__ import test01')
print(timer.timeit(5000))
timer1 = timeit.Timer(stmt='test02()',setup='from __main__ import test02')
print(timer1.timeit(5000))
timer2 = timeit.Timer(stmt='test03()',setup='from __main__ import test03')
print(timer2.timeit(5000))
timer3 = timeit.Timer(stmt='test04()',setup='from __main__ import test04')
print(timer3.timeit(5000))
"""
0.41899349999999913
0.4362713999999954
0.0754374999999925
0.2028786999999994
"""
标签:无法 次数 toc 代码示例 如何 解决 操作 ret timer
原文地址:https://www.cnblogs.com/liubing8/p/12059415.html