符号Ο的定义
如果存在正的常数C和自然数N0 ,使得当N>= N时有f(N)<=Cg(N),则称函数f(N)当N充分大时上有界,且g(N)是它的一个上界,记为f(N)=O(g(N))。
符号Ω的定义
如果存在正的常数C和自然数N0 ,使得当N>= N时有f(N)>=Cg(N),则称函数f(N)当N充分大时下有界,且g(N)是它的一个下界,记为f(N)= Ω(g(N))
O(1):表示算法的运行时间为常量时间
O(logn):二分法查找等算法
O(n):线性算法,例如线性查找
O(nlogn):快速排序、归并排序等算法
O(n2):对数组进行排序的简单算法,例如冒泡排序等
O(n3):做两个n阶矩阵的乘法运算
O(2n):求具有n个元素集合的所有子集的算法
O(n!):求具有n个元素的全排列的算法
附例题:
1.求下列函数的渐进表达式,用大O表示。
(1)3n2+10n O( n2 )
(2)n2/10+2n O( 2 n )
(3)21+1/n O( 1 )
(4)logn3 O( logn )
(5)10log3n O( n )
2.按照渐进阶从低到高的顺序排列以下表达式:
10n2 logn 5n 10n 10 n2/3 n!
排列顺序如下:
10<logn<n2/3<10n<10n2<5n<n!
如有错误,欢迎指正