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