【发布时间】:2020-03-25 15:36:47
【问题描述】:
通过比较运行算法所需的时间与输入的大小,在 Python 中计算时间复杂度非常容易。我们可以这样做:
import time
start = time.time()
<Run the algorithm on input_n (input of size n)>
end = time.time()
time_n = end - start
通过将time_n与input_n作图,我们可以观察到时间复杂度是常数、线性、指数等。
在 Python 中是否有一种类似的经验性编程方法来计算算法的空间复杂度,我们可以在其中测量随着输入大小的增长而使用的空间量?
【问题讨论】:
-
你试过
memory_profiler吗? -
@prhmma 感谢您的建议,不,我还没有遇到任何方法来实现我的目标。请给出一个示例用法作为答案,以便我投票/接受它。
-
他们的 repo 非常简单,请查看here
-
为了记录,这里没有给出算法的时间复杂度;它测量您使用的任何输入的实际运行时间。一般来说,没有编程方法来确定时间复杂度,因为这需要解决停机问题。
标签: python time-complexity complexity-theory space-complexity