【问题标题】:how to measure efficient algorithm如何衡量有效算法
【发布时间】:2020-03-29 20:16:19
【问题描述】:

我在 python 中有多种算法可以解决相同的问题。 我想知道哪个效率更高。 我怎样才能创建一个环境,两种算法都将拥有相同数量的资源(这样我就可以知道哪个算法更快)。 每个算法都可能需要几天才能完成,所以如果有办法做到这一点并且仍然可以在计算机上运行,​​那就更好了。

【问题讨论】:

  • 你能用更小的问题规模,这样算法就不会花这么长时间来完成吗?

标签: python performance measurement


【解决方案1】:

最好的办法是理论上计算所有算法的大 O 表示法。

如果你不知道,你应该看看这里的Big O 是什么

或者你可以看看这个视频 YouTube video for Big O

【讨论】:

  • 我知道大 O 符号,但这是理论上的。两种算法都有相同的大 O 表示法
  • 如果你没有说算法可能需要几天时间才能完全执行,我会建议你这个stackoverflow.com/q/1557571/12309792。对于您的特殊问题,理论上的大 o 绝对是最好的选择,它会为您节省很多时间:)
  • 感谢您的回复。但是仅仅测量时间的问题是我无法判断哪种算法更快,因为它们可以有不同的 CPU 时间。我正在寻找一种所有这些环境变量都相同的方法(GPU 时间、CPU 时间、RAM ...)
  • 好的。不幸的是,我不知道这样的事情,除了我听说你可以在 Ubuntu 或其他一些操作系统上找到脚本的时间。我不确定。
猜你喜欢
  • 1970-01-01
  • 2012-04-15
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
  • 2011-08-29
  • 1970-01-01
  • 2014-12-31
  • 1970-01-01
相关资源
最近更新 更多