• 手机站
  • 收藏
聚培教育网合作机构 > 长春达内教育
长春达内教育
400-998-6158
长春达内是专业的IT培训中心,专为各位学员提供php,java等程序设计课程
长春达内教育

Python时间复杂度测试代码

python学习网

更新时间:2021-10-29 浏览:174
核心提示:由大家孰知每一个python程序流程的操作全是很反复的优化算法变为的,而电子计算机来测算一定会花费时间,而我们在学习培训python

由大家孰知每一个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)

这一次的工作結果还可以看得出:在这个程序流程下,大家运作時间不够一秒,而大家只*是提升了一步。二者对比,第壹个比第二个快了很多。这类差别就称为算法复杂度的差别。在计算方法中大家常常须要将一个程序流程简单化,以达到计算的目地。

在计算方法中,大家时常会要想限定自身系统的运作時间,随后对其开展提升,达到**的运作時间。大家便还可以利用一种轻松的方法来实现精确测量。已经自学的你看看懂了么?

更多>同类资讯
更多>相关课程
顶部