我想知道是否有任何自动方法可以(至少粗略地)确定给定函数的 Big-O 时间复杂度?
如果我绘制 O(n) 函数与 O(n lg n) 函数的图表,我想我将能够直观地确定哪个是哪个;我认为必须有一些启发式解决方案可以自动完成此操作。
有任何想法吗?
Edit:我很高兴找到一个半自动化的解决方案,只是想知道是否有某种方法可以避免进行完全手动分析。
听起来您所要求的是停止问题的扩展。我不相信这样的事情是可能的,即使在理论上也是如此。
只是回答“这行代码会运行吗?”的问题。在一般情况下,即使不是不可能,也是非常困难的。
编辑添加:
尽管一般情况很棘手,但请参阅此处获取部分解决方案:http://research.microsoft.com/apps/pubs/default.aspx?id=104919
另外,有些人指出手动进行分析是唯一的选择,但我不认为这确实是正确的看待方法。即使将人添加到系统/机器中,棘手的问题仍然难以解决。经过进一步思考,我认为 99% 的解决方案可能是可行的,甚至可能与人类一样好,甚至更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)