Cho*_*890 2 python algorithm time time-complexity
我必须为我在其中一个类中执行的算法计时,我正在使用 time.time() 函数来执行此操作。实现后,我必须在包含大小数据集的多个数据文件上运行该算法,以便正式分析其复杂性。
不幸的是,在小数据集上,即使我在查看较大数据集的运行时使用该函数获得 0.000000000000000001 的精度,我也会得到 0 秒的运行时间,而且我无法相信它真的比较小的数据集花费的时间少数据集。
我的问题是:使用这个函数是否有问题(如果有,我可以使用另一个具有更好精度的函数)?还是我做错了什么?
如果您需要,这是我的代码:
import sys, time
import random
from utility import parseSystemArguments, printResults
...
def main(ville):
start = time.time()
solution = dynamique(ville) # Algorithm implementation
end = time.time()
return (end - start, solution)
if __name__ == "__main__":
sys.argv.insert(1, "-a")
sys.argv.insert(2, "3")
(algoNumber, ville, printList) = parseSystemArguments()
(algoTime, solution) = main(ville)
printResults(algoTime, solution, printList)
Run Code Online (Sandbox Code Playgroud)
打印结果函数:
def printResults(time, solution, printList=True):
print ("Temps d'execution = " + str(time) + "s")
if printList:
print (solution)
Run Code Online (Sandbox Code Playgroud)
我的问题的解决方案是使用 timeit 模块而不是 time 模块。
import timeit
...
def main(ville):
start = timeit.default_timer()
solution = dynamique(ville)
end = timeit.default_timer()
return (end - start, solution)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3028 次 |
| 最近记录: |