1.常数函数: f(n) = c
n的值不重要,f(n)总是为定值c,它描述了在计算机上基本操作的部属,例如两个数相加,给一些变量赋值。
2.对数函数: f(n) = y=log(b)N
因为计算机存储整数采用二进制,并且很多算法中的常见操作是把一个输入分成两半。
3.线性函数: f(n) = n
这个函数出现在我们必须对所有n个元素做基本操作的算法分析的任何时间。
4. n log n函数: f(n) = n log n
对于一个输入值n,这个函数是n倍的以2为底的n的对数,这个函数的增长速度比线性函数快,比二次函数慢
5. 二次函数: f(n) = n²
二次函数用在算法分析中的主要原因是,很多算法中都有嵌套循环,其中外层循环执行一次,内层循环将执行n次,在这种情况下,算法执行了n*n = n²个操作。
6. 三次函数: f(n) = n^3
多项式 f(n) = a0 + a1n + a2n²+…+a(d)n^d
7.指数函数: f(n) = b^n
时间复杂度
(1)算法的时间复杂度,也就是算法的时间量度,记作:T( n ) = O( f( n ) ),它表示随问题规模n的增大,算法执行时间的增长率和f( n )的增长率相同,称作算法的渐进时间复杂度,简称 时间复杂度,其中f( n )是问题规模n的某个函数。
把cpu的执行次数 == 单位时间
(2)算法复杂度的计法O( )
一般情况下,随着输入规模n的增大,T( n )增长最慢的算法未最优算法
空间复杂度
(1)算法的空间复杂度通过计算算法所需的存储空间实现,计算公式为:S( n ) = O( f( n) )
其中n为规模,f( n )为语句关于n所占存储空间的函数
分析中重要的函数
最新推荐文章于 2022-03-02 21:37:04 发布