算法分析之常用符号大O、小o、大Ω符号、大Θ符号、w符号

大O符号(英语:Big O notation),又称为渐进符号,是用于描述函数渐近行为的数学符号。更确切地说,它是用另一个(通常更简单的)函数来描述一个函数数量级的渐近上界。在数学中,它一般用来刻画被截断的无穷级数尤其是渐近级数的剩余项;在计算机科学中,它在分析算法复杂性的方面非常有用。
1、O(1) 为常数级的时间复杂度,算法是十分好。
2、O(log n) 为对数级的时间复杂度,算法也不错。
3、O(n) 为线性级的时间复杂度,算法也还行。
4、O(nlog n)线性对数级的时间复杂度,算法也还可以。
5、O(n^2) 二次方级的时间复杂度,算法有点差。
6、O(n^3)三次方级的时间复杂度,算法差。
7、O(2^n) 指数级的时间复杂度,算法很差。
8、O(n!)阶乘级的时间复杂度,算法极差。
大O准确来说, 使用另一个函数来描述一个函数数量级的**渐进上界
小o呢则表示一个函数渐进地小于另一个函数,没有等于。
大Ω符号的定义与大O符号的定义类似,但主要区别是,大O符号表示函数在增长到一定程度时总小于一个特定函数的常数倍,大Ω符号则表示总大于。大Ω符号主要是用来描述一个函数数量级的
渐进下界**。
大Θ符号是大O符号和大Ω符号的结合。即: {!若 {\displaystyle {\begin{cases}f(\nu )=\mathrm {O} [g(\nu )]\f(\nu )=\Omega [g(\nu )]\end{cases}}} {\begin{cases}f(\nu )=\mathrm{O} [g(\nu )]\f(\nu )=\Omega [g(\nu )]\end{cases}}。
这一符号首先由高德纳于1970年提出[1]。
Θ符号既是上界也是下界相当于两者的结合,等于的意思。
w符号表示下界,大于的意思。
函数f ( n )代表某一算法在输入大小为n的情况下的工作量(效率),则在n趋向很大的时候,我们将f (n)与另一行为已知的函数g(n)进行比较:

1、如果0,则称f (n)在数量级上严格小于g(n),记为f (n)=o( g(n))。
2、如果,则称f (n)在数量级上严格大于g(n),记为f (n)=w( g(n))。
3、如果c,这里c为非0常数,则称f (n)在数量级上等于g(n),即f (n)和g(n)是同一个数量级的函数,记为:f (n)=Θ( g(n))。
4、如果f (n)在数量级上小于或等于g(n),则记为f (n)=O( g(n))。
5、如果f(n)在数量级上大于或等于g(n),则记为f (n)=Ω( g(n))。
大O大Ω都是存在c,小o小w都是对于任意c
总结
Θ等于的意思。
Ο表示上界,小于等于的意思。
ο表示上界,小于的意思。
Ω表示下界,大于等于的意思。
ω表示下界,大于的意思。

猜你喜欢

转载自blog.csdn.net/qq_39745932/article/details/82747191