在开发过程中获取重要信息(如 Landau 符号)以了解函数的时间成本是个好主意。所以它应该记录在源代码中,不是吗?
我正在寻找可以计算它的工具。
最佳答案
在一般情况下,任意算法的渐近复杂度是不可判定的,由 Rice's theorem .
但在实践中,您通常可以通过对各种输入(大小跨越几个数量级)重复运行算法、记录实际 CPU 时间并拟合曲线来做出很好的猜测。 (你应该扔掉运行时间很短的数据点,因为它们会被噪音支配。另外,在像 Java 虚拟机这样的 JITed 运行时,确保在开始计时之前运行函数一段时间,以确保 VM已经热身了。)
关于eclipse - Landau notation (ide) 工具支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2715952/