Algorithm O(polylog(n))是什么意思?特别是,polylog(n)是如何定义的?

Algorithm O(polylog(n))是什么意思?特别是,polylog(n)是如何定义的?,algorithm,full-text-search,compression,complexity-theory,Algorithm,Full Text Search,Compression,Complexity Theory,简介: 当学术(计算机科学)论文说“O(polylog(n))”时,它们是什么意思?我并没有被我非常熟悉的“Big Oh”符号所迷惑,而是被函数polylog(n)所迷惑。我想他们不是在谈论复杂的分析功能。还是他们?也许是完全不同的东西 更多详细信息: 主要出于个人兴趣,我最近查阅了关于压缩后缀数组的各种论文,例如。所述的计算复杂性估计有时涉及polylog(n),这是一个我不熟悉的函数 维基百科给出的定义似乎主要是关于复杂分析和解析数论。我的怀疑是,它与压缩文件中的polylog(n)无关,尽

简介:
当学术(计算机科学)论文说“O(polylog(n))”时,它们是什么意思?我并没有被我非常熟悉的“Big Oh”符号所迷惑,而是被函数polylog(n)所迷惑。我想他们不是在谈论复杂的分析功能。还是他们?也许是完全不同的东西

更多详细信息:
主要出于个人兴趣,我最近查阅了关于压缩后缀数组的各种论文,例如。所述的计算复杂性估计有时涉及polylog(n),这是一个我不熟悉的函数

维基百科给出的定义似乎主要是关于复杂分析和解析数论。我的怀疑是,它与压缩文件中的polylog(n)无关,尽管我很想听听其他更有知识的人的意见。如果是这样,为什么认为省略下标是合理的

我唯一的另一个猜测是,O(polylog(n))可能意味着“对数(n)的多项式函数的渐近性”。但这只是一个猜测:我没有证据证明这一点,这将是对符号的滥用


在任何情况下,链接到一个合理的权威性定义将不胜感激

我确信它们只表示正整数实轴:
Re(n)=n
Polylog(n)只是“n的对数中的多项式”

不同。你的猜测非常接近。

不管是否滥用符号,polylog(n)确实表示“log(n)中的某个多项式”,正如“poly(n)”可以表示“n中的某个多项式”。所以O(polylog(n))意味着“O((logn)k)代表一些k”。(请参阅斯科特·阿伦森教授的博客,或者从上下文来看:)

关键是,正如我们通常不关心常数因子一样,忽略对数的幂也很方便。有时“对数因子”被完全忽略,你可能会看到“Õ(f(n))”-O上面有一个波浪线-这是“O(f(n)polylog(f(n))”,也就是说,“O(f(n)(log f(n))k)代表一些k”。

它的使用方式似乎是在描述一些事情:


O(log^pn)

Wolfram给了你一个答案,这一页看起来最有希望。

在链接的摘要中,它说“……只要=O(polylog(n)),就可以在O(m)时间内搜索CSA。”哦,也许Sadakane[SODA 2002]有你的明确答案。
忽略对数幂通常很方便。当对数的幂完全改变意义时,忽略对数的幂怎么可能方便呢?@eSKay:同样,忽略常数因子也很方便,即使它完全改变了意义——这取决于你想关注什么。对于每个ε,任何多段对数函数的增长速度都慢于O(n^ε)。因此,当你关心的是n中的指数时——例如,试图区分n^2.1和n^2——这些多段对数因子并不重要。O(n^2 polylog(n))是所有ε的O(n^(2+ε)),所以我们写Õ(n^2)。@ShreevatsaR我发现你的答案对理解这个问题很有帮助,所以它应该写为
O(poly(logn))
,然后就清楚了
O(polylog(n))
令人困惑。@托马斯:是的,这可能会有所帮助。在本例中,在O()表示法普及之前就已经在使用了,因此“polylog”是“polylogarithmic”的缩写,而不是从零开始用表示法“poly(log)”(正如您所说,这可能更清楚)。