由大家孰知每一个python程序流程的操作全是很反复的优化算法变为的,而电子计算机来测算一定会花费时间,而我们在学习培训python基本时早已了解python相对性别的语种而言是相对来说较慢的。那样的差别大家称之为算法复杂度。 很有可能在一般状况下大家看不出来時间的差别,那麼大家今天就将对時间开展检测。
大家开展检测的题型非常简单:如果a b c=1000,而且a**2 b**2=c**2,求abc的组成。
大家先用簡單的方式 实现测算,便是将a,b,c各自放进(0,1000)内,各自一个一个的试着,最终明确a,b,c的明确值。可是现在大家为了更好地检测時间,我们要引入第三方库来纪录程序流程的运作時间。
编码实例:
import time
start_time = time.time()
for a in range(1001):
for b in range(1001):
for c in range(1001):
if a b c == 1000 and a**2 b**2 == c**2:
print("a,b,c:%d,%d,%d"%(a,b,c))
end_time = time.time()
used_time= end_time - start_time
print(used_time)
这儿我们可以测算电子计算机就完成的计算频次为1000*1000*1000*2(将if语句看做为一步)
随后我们可以获得运作結果,在运作結果中还可以看得出,开展此次计算大概应用了146秒,实际上便能看得出python运作速度比较慢的毛病了。
随后大家将编码简单化为 c = 1000-a-b的方式,那样难题便被优化了,我们可以测算计算频次为1000*1000*3。
编码实例:
import time
start_time = time.time()
for a in range(1001):
for b in range(1001):
# for c in range(1001):
c = 1000 – a – b
if a**2 b**2 == c**2:
print(“a,b,c:%d,%d,%d”%(a,b,c))
end_time = time.time()
used_time= end_time – start_time
print(used_time)
这一次的工作結果还可以看得出:在这个程序流程下,大家运作時间不够一秒,而大家只*是提升了一步。二者对比,第壹个比第二个快了很多。这类差别就称为算法复杂度的差别。在计算方法中大家常常须要将一个程序流程简单化,以达到计算的目地。
在计算方法中,大家时常会要想限定自身系统的运作時间,随后对其开展提升,达到**的运作時间。大家便还可以利用一种轻松的方法来实现精确测量。已经自学的你看看懂了么?