有没有人知道任何程序/脚本自动计算代码的计算复杂性(例如方法函数)?
如果没有,是否有支持它的好方法(例如设计模式,算法等)?
我一般都不想这样做。
在大多数情况下,我知道输入,运行它的算法以及构成停顿的内容。我试图以这种方式比较两种或更多算法。
E.g。
algo #1 - 2x^2 + 10x + 5
algo #2 - 5x^2 + 1x + 3
两种算法都是O(N ^ 2)。但算法#2在短期内更好,而算法#1从长远来看更好。
答案 0 :(得分:1)
虽然不可能开发出通常可以解决问题的算法,但您可以编写一个算法来计算一些软件的复杂性,以用于一些示例输入。
我能找到的唯一软件称为Trend-Profiler。但是,如果您对算法比对结果更感兴趣,可以使用论文here来描述软件及其算法。
答案 1 :(得分:0)
使用不同数量的输入采样算法不是更好吗? 通过计算每个输入的时间,您可以近似复杂度函数,从而确定哪个算法更好以及在哪个阶段。