微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何确定以下算法的运行时间

如何解决如何确定以下算法的运行时间

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 举报,一经查实,本站将立刻删除。