我们常需要分析一个算法的性能如何。例如我们说快速排序在最坏情况下性能为 O ( n 2 ) O(n^2) O(n2)而平均情况下性能为 O ( n l o g n ) O(nlogn) O(nlogn)。这些讨论中会用到 O O O这种渐近记号。
在《算法导论》第三章介绍了5种渐近记号: Θ \Theta Θ、 O O O、 Ω \Omega Ω、 o o o、 ω \omega ω,其中3个是拉丁符号,另外2个是大写字母O和小写字母o
Θ、O和Ω
Θ ( g ( n ) ) \Theta(g(n)) Θ(g(n))是函数集合,其算术定义有点类似极限的定义: Θ ( g ( n ) ) = { f ( n ) : 存 在 正 常 数 c 1 , c 2 和 n 0 , 对 所 有 n ≥ n 0 , 有 c 1 g ( n ) ≤ f ( n ) ≤ c 2 g ( n ) } \Theta(g(n)) = \{f(n): 存在正常数c_1, c_2和n_0,对所有n\geq n_0,有c_1 g(n) \leq f(n) \leq c_2 g(n) \} Θ(g(n))={ f(n):存在正常数c1,c