Algorithm java-大O符号

Algorithm java-大O符号,algorithm,big-o,Algorithm,Big O,因此,我试图解决一些大问题,其中一些问题我遇到了一些麻烦。我不太理解他们。 例如,10MlogM+(N/2)log(N/2)+N/4的主项 和M log(N)+M log(M)。我很难理解带有“log”的大o表达式。如有任何帮助,我们将不胜感激 我很难理解带有“log”的大o表达式 如果我们绘制log(或任何函数)的Big-O图形,就很容易理解: 现在,因为你面对的是一个有多个项的方程(其中一个是log),所以它可能会把你弄糊涂。如果我们绘制第一项(我假设其NlogN,并丢弃常数(10)):

因此,我试图解决一些大问题,其中一些问题我遇到了一些麻烦。我不太理解他们。 例如,
10MlogM+(N/2)log(N/2)+N/4的主项
和
M log(N)+M log(M)
。我很难理解带有“log”的大o表达式。如有任何帮助,我们将不胜感激

我很难理解带有“log”的大o表达式

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

现在,因为你面对的是一个有多个项的方程(其中一个是
log
),所以它可能会把你弄糊涂。如果我们绘制第一项(我假设其
NlogN
,并丢弃常数(10)):

类似地,对于其他术语(
N/2*log(N/2)
):

我相信你已经知道了,但这张图很容易证明,当我绘制整个函数图时,只有主项(
nlogn
)定义了大O(因为它只是显示函数的上界):

N log N是什么意思

这为以下示例提供了很好的解释:

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

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

O(n logn):我们想对电话簿进行个性化设置,所以我们要 在指定副本中查找每个人或企业的名称,然后 在书中圈出他们的名字,并为他们写一封简短的感谢信 他们的赞助


可能与
M
N
重复?通常,这种表示法是图形问题的常规表示法,其中
N
M
分别表示顶点和边的数量。从技术上讲,
M=O(N^2)
,整个过程可以单独用
N
来编写,但是使用一个单独的变量
M
可以让您强调依赖于图的密集程度或稀疏程度的部分。例如,在稀疏图中,
mlog(N)+mlogm
可能是
nlogn
,而在密集图中则更接近
nlogn^2nlogn
。这几乎让人感觉它应该被移植到姐妹站点。