如何解决如何确定以下算法的运行时间
for n in range (1,n):
for j in range(1,n+1):
k = 1
while k <= j:
sumfunc()
k *= 42
(Python代码,从1到n)
如果somefunc()
是影响因素,如何确定somefunc()
的调用次数以及由此算法的运行时间?
我只是将这种类型的其他问题转换为一些总和并加以解决,但这有点棘手。
我注意到直到n = 41
都是线性的,但是之后log42(n)
才涉及到,但是我不知道如何使用这个事实。
解决方法
从技术上讲,您只需要在代码执行前后获得一个时间戳,然后从after时间戳中减去before即可获得代码段的执行时间:
import time
t0 = time.time()
for n in range (1,n):
for j in range(1,n+1):
k = 1
while k <= j:
sumfunc()
k *= 42
t1 = time.time()
total = t1-t0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。