4

有谁知道任何程序/脚本可以自动计算代码的计算复杂度(例如方法函数)?

如果没有,是否有支持它的好方法(例如设计模式、算法等)?

我一般不会尝试这样做。

在大多数情况下,我知道输入、运行它的算法以及什么构成了暂停。我正在尝试以这种方式比较 2 种或更多算法。

例如

algo #1 - 2x^2 + 10x + 5

algo #2 - 5x^2 + 1x + 3

两种算法都是 O(N^2)。但是算法#2 在短期内更好,而算法#1 从长远来看更好。

4

2 回答 2

1

虽然不可能开发出一种算法来解决您的问题,但您可以编写一个算法来计算一个软件的复杂性,以获取一些示例输入。

我能找到参考的唯一软件叫做Trend-Profiler。但是,如果您对算法比结果更感兴趣,这里有一篇论文描述了软件及其算法。

于 2012-10-04T15:48:44.760 回答
0

用不同数量的输入对算法进行采样不是更好吗?通过为每个输入计算的时间,您可以近似复杂度函数,从而确定哪种算法更好以及在哪个阶段。

于 2012-10-04T16:27:41.177 回答