java-大O符号

时间:2017-04-29 23:40:31

标签: algorithm big-o

所以,我试图解决一些大问题,但我遇到了一些麻烦。我不太了解他们。 例如10MlogM + (N/2) log (N/2) + N/4的主导词 和M log (N) + M log (M )。我无法通过' log'来理解大表达式。在他们中。任何帮助将不胜感激,并提前感谢。

1 个答案:

答案 0 :(得分:0)

  

我无法理解带有'log'的大o表达式

如果我们绘制图表,很容易理解 log (或任何函数)的 Big-O

enter image description here

既然你面对的是一个有多个术语的等式(其中一个是 log ),那么也许会让你感到困惑。如果我们绘制第一个术语(我假设它为NlogN并丢弃常量(10)):

enter image description here

同样适用于其他术语( N/2 * log(N/2) ):

enter image description here

我相信您已经知道,但此图表很容易证明只有主要字词( N logN )定义 Big O as它只是为了显示函数的上界),因为我绘制了整个函数的图形:

enter image description here

N log N是什么意思

link为此示例提供了非常好的解释:

  

O(n log n):打印机的办公室出现混乱,我们的电话簿的所有页面都是以随机顺序插入的。通过查看每个页面上的第一个名称然后将该页面放在一个新的空电话簿中的适当位置来修复排序以使其正确。

     

对于以下示例,我们现在在打印机办公室。电话簿   正在等待邮寄给每个居民或企业,并且有一个   每本电话簿上的贴纸标识应该邮寄到哪里。   每个人或企业都会收到一本电话簿。

     

O(n log n):我们想个性化电话簿,所以我们要去   然后,在指定的副本中找到每个人或企业的名称   在书中圈出他们的名字并写一篇简短的感谢信   他们的赞助。