算法:Ο、Ω、Θ符号在时间复杂度表示中的含义
Ο符号
O符号提供了一个运行时间的上界,它可能不是算法运行的实际运行时间。说一个算法的运行时间是O(n),是指如果每当输入的大小大于等于某个阈值n0时,那么它的运行时间上界时g(n)的c倍,其中c是某个正常数。O符号的形式定义如下:
令f(n)和g(n) 是从自然数到非负实数集的两个函数,如果存在一个自然数n0和一个常数c(c>0),使得:
∀n≧n0,f(n)≦cg(n),则称f(n)为O(g(n))。
因此,如果lim(n→∞)f(n)/g(n)存在,那么
lim(n→∞)f(n)/g(n)≠∞存蕴含着f(n)=O(g(n))
Ω符号
Ω符号给出一个下届,它可能不确切指示一个算法确切运行的时间。说一个算法的运行时间是Ω(n),是指如果每当输入的大小大于等于某个阈值n0时,那么它的运行时间下界时g(n)的c倍,其中c是某个正常数。O符号的形式定义如下:
∀n≧n0,f(n)≧cg(n), 则称f(n)为Ω(g(n)).如果lim f(n)/g(n)=∞,则称f (n)在数量级上严格大于g(n),记为f (n)=Ω( g(n))。
Θ符号
Θ符号可作如下解释:对于任何大小大于或等于某一阈值n0的输入,如果运行时间在下限与上限之间(c1g(n)与c2g(n)),则称算法的运行时间是Θ(g(n))阶的。因此这一符号是用来表示算法的精确阶的,它蕴含着在算法的运行时间上有确切界限。
存在预算法有关的两个系数c1和c2,使得 ∀n>n0,c1g(n)≦f(n)≦c2g(n),
则称f(n)=Θ(g(n)).如果c,这里c为非0常数,则称f (n)在数量级上等于g(n),即f
(n)和g(n)是同一个数量级的函数,记为:f(n)=Θ( g(n))。