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

时间:2009-11-26 01:46:00

标签: algorithm full-text-search compression complexity-theory

简介:
当学术(计算机科学)论文说“O(polylog(n))”时,它们是什么意思?我不会对“Big-Oh”符号感到困惑,我非常熟悉它,而是使用polylog(n)函数。他们不是在谈论我认为的复杂分析函数Lis(Z)。或者是他们?可能有些完全不同的东西?

更多细节:
主要是出于个人兴趣,我最近一直在查看有关压缩后缀阵列的各种论文,例如Advantages of Backward Searching -- Efficient Secondary Memory and Distributed Implementation of Compressed Suffix Arrays。所述的计算复杂度估计有时涉及polylog(n),这是我不熟悉的函数。

维基百科给出了polylogs(z)的定义,它似乎主要是关于复杂分析和分析数论。我怀疑它与压缩文件中的polylog(n)无关,尽管我更喜欢听到知识渊博的人的反对意见。如果是这种情况,为什么省略下标是否合理?

我唯一的另一个猜测是,O(polylog(n))可能意味着“渐近于log(n)的多项式函数”。但这只是一个猜测:我没有证据证明这一点,并且会滥用记谱法来启动。

在任何情况下,都会非常感谢指向合理权威定义的链接!

6 个答案:

答案 0 :(得分:66)

滥用符号或不符号,polylog(n)的意思是“log(n)中的某些多项式”,就像“poly(n)”可以表示“n中的某个多项式”。所以O(polylog(n))对于某些k“意味着”O((log n) k )。 (参见Wikipedia: Polylogarithmic,或者,在上下文中看到它,Scott Aaronson教授的博客:My Favorite Growth Rates。)

关键在于,正如我们通常不关心常数因素一样,忽略对数幂通常很方便。有时候“log因子”会被完全忽略,你可能会看到“Õ(f(n))” - O在它上面有一个代号 - means“O(f(n)polylog(f(n)) )“,即”O(f(n)(log f(n)) k )对于某些k“。

答案 1 :(得分:2)

this paper中使用它的方式似乎是在描述:

O(log ^ p n)

答案 2 :(得分:1)

Polylog(n)只是“n的对数中的多项式”。 Wikipedia

答案 3 :(得分:1)

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

答案 4 :(得分:0)

我确定它们只表示正整数实轴:Re(n) = n

答案 5 :(得分:0)

Wolfram为您提供selectionpolylogarithm页面看起来最有希望。