算法
2016-06-10 10:51
89 查看
看完还有不懂的话,可以看这篇文章:
http://blog.csdn.net/u012816041/article/details/49888631
大O符号:表示阶,小于关系:无穷大渐近
大O符号在分析算法效率的时候非常有用。举个例子,解决一个规模为n的问题所花费的时间(或者所需步骤的数目)可以表示为:T(n)=4n^2-2n+2。当n增大时,n^2项将开始占主导地位,而其他各项可以被忽略。 举例说明:当n=500,4n^2项是 2n项的1000倍大,因此在大多数场合下,省略后者对表达式的值的影响将是可以忽略不计的。
进一步看,如果我们与任一其他级的表达式比较,n^2项的系数也是无关紧要的。例如:一个包含n^3或n^2项的表达式,即使 T(n)=1,000,000\cdot n^2,假定 U(n)=n^3,一旦n增长到大于1,000,000,后者就会一直超越前者(T(1,000,000)=1,000,000^3=U(1,000,000))。
这样,大O符号就记下剩余的部分,写作:
T(n)\in\Omicron(n^2)
或
T(n)=\Omicron(n^2)
并且我们就说该算法具有n^2阶(平方阶)的时间复杂度。
无穷小渐近
大O也可以用来描述数学函数估计中的误差项。例如e^x的泰勒展开:
e^x=1+x+\frac{x^2}{2}+\hbox{O}(x^3)\qquad当x \to 0时
这表示,如果x足够接近于0,那么误差e^x - \left(1 + x + \frac{x^2}{2}\right)的绝对值小于x^3的某一常数倍。
给定两正值函数f和g,定义:
f(n)=O(g(n)),条件为:存在正实数c和N,使得对于所有的n >=N,有|f(n)| <= |cg(n)|
最后总结:
设函数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))。
http://blog.csdn.net/u012816041/article/details/49888631
大O符号:表示阶,小于关系:无穷大渐近
大O符号在分析算法效率的时候非常有用。举个例子,解决一个规模为n的问题所花费的时间(或者所需步骤的数目)可以表示为:T(n)=4n^2-2n+2。当n增大时,n^2项将开始占主导地位,而其他各项可以被忽略。 举例说明:当n=500,4n^2项是 2n项的1000倍大,因此在大多数场合下,省略后者对表达式的值的影响将是可以忽略不计的。
进一步看,如果我们与任一其他级的表达式比较,n^2项的系数也是无关紧要的。例如:一个包含n^3或n^2项的表达式,即使 T(n)=1,000,000\cdot n^2,假定 U(n)=n^3,一旦n增长到大于1,000,000,后者就会一直超越前者(T(1,000,000)=1,000,000^3=U(1,000,000))。
这样,大O符号就记下剩余的部分,写作:
T(n)\in\Omicron(n^2)
或
T(n)=\Omicron(n^2)
并且我们就说该算法具有n^2阶(平方阶)的时间复杂度。
无穷小渐近
大O也可以用来描述数学函数估计中的误差项。例如e^x的泰勒展开:
e^x=1+x+\frac{x^2}{2}+\hbox{O}(x^3)\qquad当x \to 0时
这表示,如果x足够接近于0,那么误差e^x - \left(1 + x + \frac{x^2}{2}\right)的绝对值小于x^3的某一常数倍。
给定两正值函数f和g,定义:
f(n)=O(g(n)),条件为:存在正实数c和N,使得对于所有的n >=N,有|f(n)| <= |cg(n)|
最后总结:
设函数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))。
相关文章推荐
- XML 与 HTML
- bzoj2038
- 智慧源自发问,问题重于回答。
- <Sicily>Funny Game
- Peaceful Commission_hdu1814_2-sat
- Linux的系统结构
- 2016 UESTC Training for Search Algorithm & String A - Xiper的奇妙历险(1) 八皇后问题、dfs
- 掌握CoordinatorLayout
- svn学习之路-概念篇
- Mozilla 开始为开源项目提供 50 万美元的安全审计基金
- ubuntu超级账户
- 227. Basic Calculator
- UVA-253-Cube painting
- <Hadoop>Pig安装及测试
- Ural 1874 Football Goal
- 顺序栈
- Word Pattern
- 【CSS笔记一】开始学习CSS,为网页添加样式
- C++第二次上机实验-学生成绩
- shell--赋值,判断,循环