Landau notation(兰道记号)是一组用于描述函数在某个极限(常见为 \(n\to\infty\) 或 \(x\to 0\))下“增长/衰减速度”的渐近记号。最常见的包括 \(O(\cdot)\)(大 O)、\(o(\cdot)\)(小 o)、\(\Theta(\cdot)\)、\(\Omega(\cdot)\) 等,广泛用于算法复杂度分析与数学中的渐近估计。
(在不同领域也可能强调不同子集,例如分析数论中常用 \(O\) 与 \(o\)。)
/ˈlænd.aʊ noʊˈteɪ.ʃən/
Landau notation helps us describe how fast an algorithm grows.
兰道记号帮助我们描述算法的增长速度。
Using Landau notation, we can write \(f(n)=O(n\log n)\) to express an asymptotic upper bound as \(n\to\infty\), while \(f(n)=o(n)\) indicates the growth is strictly smaller than linear.
用兰道记号,我们可以写 \(f(n)=O(n\log n)\) 来表示当 \(n\to\infty\) 时的渐近上界,而 \(f(n)=o(n)\) 则表示其增长严格小于线性。
“Landau”来自德国数学家 Edmund Landau(埃德蒙·兰道) 的姓氏。兰道在19世纪末至20世纪初的分析数论研究中系统使用并推广了这些渐近记号,因此后人把这一套记号统称为 Landau notation。“notation”意为“记号/符号体系”。