我对如何确定1函数比另一个函数更快还是更慢有一个问题。如果教授使用O(1)和O(n)的例子,我知道O(1)更快,但我只知道通过记忆简单的函数运行时间顺序。但是如果给出更复杂的例子,我不明白如何找到更快的函数。
例如,假设我想比较n^logn和n^(logn)^2和n^(sqrt(n))。如何比较这些函数,并能够判断哪个函数的运行时间最快、最慢(大-O表示法)?是否有一个逐步的进程,我可以跟踪每一次,以便我可以使用比较函数运行时间?
下面是我对上述例子的思考。我知道n^2比n^3快,所以我想比较每个函数的n^____。因此,如果我在每个插件中插入n=1000000,logn将有最小的值,logn^2将有第二个,logn^sqrt(n)将最大。这是否意味着最小值( n^logn )将是最快的,而最大值( n^sqrt(n) )将是最慢的? 1. n^logn(最快) 2. n^logn^2 .n^sqrt(N)(最慢)
发布于 2014-10-02 02:44:33
比较O符号基本上是比较曲线的问题。我建议你画出曲线-这将有助于你的理解。
如果您使用python,我建议您试试mathplotlib.pyplot。很方便。
https://stackoverflow.com/questions/26153743
复制相似问题