算法基础-渐进记号
2016-11-20 13:54
357 查看
引言:
对于某个比较简单的算法,我们有时候确实能够精确地分析出算法的复杂度,比如算法复杂度为n^2+2n+2,但是事实上并不需要这样,因为当n足够大时,可以忽略掉低阶项和最高次项的系数,因此就引出了“渐近复杂度”,并且用“渐近记号”来表示“渐近复杂度”。今天小编简单介绍3中常用的标准方法来简化算法的渐进分析。
O记号:
大O表示渐进上界,相当于“<=”.O(g(n))={f(n):存在正常数c和N0,使对所有的n>=n0,都有0<=f(n)<=cg(n)}。
如上图所示,对于函数f(n),在x>n0时,恒有cg(n)无限接近且大于f(n).此时,就称cg(n)函数为f(n)函数的渐进上界。
举个栗子:
f(n)=0.5n^2+4n,则可以表示为f(n)=O(n^2)。证明:要使得0<=f(n)<=cg(n)
f(n)=0.5n^2+4n<=cg(n)=cn^2
0.5n+4<=cn
c-0.5>=4/n
存在c=9/2,n0=1,是的对所有的n>=n0都有0<=f(n)<=cg(n).
对于某个比较简单的算法,我们有时候确实能够精确地分析出算法的复杂度,比如算法复杂度为n^2+2n+2,但是事实上并不需要这样,因为当n足够大时,可以忽略掉低阶项和最高次项的系数,因此就引出了“渐近复杂度”,并且用“渐近记号”来表示“渐近复杂度”。今天小编简单介绍3中常用的标准方法来简化算法的渐进分析。
O记号:
大O表示渐进上界,相当于“<=”.O(g(n))={f(n):存在正常数c和N0,使对所有的n>=n0,都有0<=f(n)<=cg(n)}。
如上图所示,对于函数f(n),在x>n0时,恒有cg(n)无限接近且大于f(n).此时,就称cg(n)函数为f(n)函数的渐进上界。
举个栗子:
f(n)=0.5n^2+4n,则可以表示为f(n)=O(n^2)。证明:要使得0<=f(n)<=cg(n)
f(n)=0.5n^2+4n<=cg(n)=cn^2
0.5n+4<=cn
c-0.5>=4/n
存在c=9/2,n0=1,是的对所有的n>=n0都有0<=f(n)<=cg(n).
相关文章推荐
- 算法分析基础---渐进符号和递归式分析
- 计算机算法分析之渐进记号
- 计算机算法分析之渐进记号
- 算法中的渐进记号
- [算法①]算法基础--渐进记法
- [算法导论] 函数的增长---渐进记号
- 算法设计课程总结1~2(渐进分析记号,复杂性比较,递归,分治)
- 算法分析基础---渐进复杂度
- 算法基础(二)——算法时间复杂度和渐进时间复杂度
- 算法学习四:算法性能分析理论基础——函数增长与渐进分析
- 基础乐理--演奏法的记号
- 算法基础系列之三:螺旋形矩阵
- 两个基础的算法题目
- 3D图形算法基础,吐血推荐,想了解3D数学的来看看啊!
- 基础算法学习笔记(一)----回溯法
- 基础算法测试——生成一个1-10之间的随机整数组合
- PKI基础 二.PKI基础--1.单钥密码算法(加密)
- 陈跃峰的《两个基础的算法题目》的解答
- 基础乐理--变音记号
- 基础算法学习笔记(二)----动态规划