是否有Python方法来计算空间复杂度?

问题描述 投票:0回答:1

通过将运行算法所需的时间与输入大小进行比较,可以很容易地在Python中计算时间复杂度。我们可以做类似的事情:

import time

start = time.time()
<Run the algorithm on input_n (input of size n)>
end = time.time()
time_n = end - start

通过绘制time_ninput_n的图表,我们可以观察到时间复杂度是否为常数,线性,指数等。>

[在Python中,是否有一种类似的基于经验的编程方式来计算算法的空间复杂度,我们可以在其中测量随着输入大小的增加而使用的空间量?

通过将运行算法所需的时间与输入大小进行比较,可以很容易地在Python中计算时间复杂度。我们可以做类似的事情:导入时间开始= time.time()] >>>>

您可以将memory_profiler与这样的装饰器一起使用:

from memory_profiler import profile

  @profile(precision=4)
  def func():
     your function

mprof中还有另一个称为memory_profiler的功能,也将很有用。如果要查看内存是否定期清理和释放,这将很有用。在所选的shell中运行mprof运行脚本script_args。 mprof将自动创建脚本随时间变化的内存使用情况的图形,您可以通过运行mprof plot来查看该图形。它需要matplotlib

更新:感谢@hunzter,您可以找到文档here

python time-complexity complexity-theory space-complexity
1个回答
0
投票

您可以将memory_profiler与这样的装饰器一起使用:

© www.soinside.com 2019 - 2024. All rights reserved.