我正在学习算法,需要你们的帮助。我是一个初学者,如果我的问题不清楚,请原谅。当我在学习的时候,我看到了类似NlogN,N^2等的东西。诸如此类的东西。
当涉及到使用这些符号检查不同算法的效率/性能时,我真的不是很清楚。我非常了解对数,但是它们被用来检查算法性能的方式让我发疯。
我在问是否有人可以给我一个教程,在那里解释了这样的符号,这样我就可以很好地掌握基础知识。我真的很想了解他们,并愿意学习。
谢谢你的帮助。
Kap。
发布于 2010-10-26 04:32:09
这些只是函数,接收输入中的项数,并返回完成算法所需的操作次数(它们通常返回算法的限制因子,而不是特定的函数。更多信息- here)。
发布于 2010-10-26 04:29:05
您所描述的内容称为big O notation。Here是一个解释它的指南。
需要注意的重要一点是,符号忽略了无关紧要的术语。如果您的算法需要6X^2 + 3X + 12秒来执行,其中X是正在处理的数据点的数量,那么就称它为O(X^2),因为当X变大时,6不会真正起作用,3和12也不会。
发布于 2010-10-26 04:28:18
购买Introduction to Algorithms。你可以以合理的价格买到二手的版本。
和/或查看这些来自麻省理工学院的围绕上述书籍构建的great online video lectures。
通过观看这些讲座,您将了解一些算法如何具有对数时间复杂度,而另一些算法具有指数时间复杂度,等等。
https://stackoverflow.com/questions/4018568
复制相似问题