有没有更简单或更有效的方法来找到算法的平均运行时间?

huangapple go评论105阅读模式
英文:

Is there an easier or more efficient method to find the average running time of an algorithm?

问题

  1. # 创建50个链表,每个链表包含2500个随机整数
  2. for i in range(0, 50):
  3. myList = LinkedList()
  4. start = time.time()
  5. for i in range(0, 2500):
  6. myList.append(randint(0, 9))
  7. end = time.time()
  8. runtime = end - start
  9. runtimes = []
  10. runtimes.append(runtime)
  11. for i in range(len(runtimes)):
  12. average = 0
  13. average += runtime
  14. average /= len(runtimes)
  15. print(average) # 10秒
  16. # 想知道是否有更好的方法来计算平均值,而不是将每个运行时间添加到一个列表中,循环遍历运行时间列表,将每个运行时间添加到“average”,然后除以运行时间列表的长度。
英文:
  1. # create 50 linked list with 2500 random integers
  2. for i in range(0, 50):
  3. myList = LinkedList()
  4. start = time.time()
  5. for i in range(0, 2500):
  6. myList.append(randint(0, 9))
  7. end = time.time()
  8. runtime = end - start
  9. runtimes = []
  10. runtimes.append(runtime)
  11. for i in range(len(runtimes)):
  12. average = 0
  13. average += runtime
  14. average /= len(runtimes)
  15. print(average) # 10s

Wondering if there's a better method to find the average instead of adding each run time to a list, looping through the list of runtimes, adding each runtime to average , then dividing by the length of the list of runtimes.

答案1

得分: 1

是的

  1. import timeit
  2. ttl = timeit.timeit(lambda: alist.append(5),number=2500)
  3. print(f"花费了 {ttl} ... 平均值: {ttl/2500}")

或者甚至是 sum(runtimes)/len(runtimes)

英文:

yes

  1. import timeit
  2. ttl = timeit.timeit(lambda: alist.append(5),number=2500)
  3. print(f"Took {ttl} ... avg: {ttl/2500}")

or even really sum(runtimes)/len(runtimes)

huangapple
  • 本文由 发表于 2023年7月13日 10:36:24
  • 转载请务必保留本文链接:https://go.coder-hub.com/76675545.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定