数据结构及算法笔记(裘宗燕)(二)

数据结构及算法笔记(裘宗燕)

四、常量因子和算法复杂度
判断一个程序的质量如何,我们虽然可以用研究这个程序是怎么实现的来判断,但这样又太麻烦,实践中的价值有限。
对于算法的质量(及时间和空间性质),其最重要的是量级和趋势,二代价函数的常量因子可以忽略不计。例如,可以认为3n2和100n2属于同一个量级,如果两个算法处理同样规模实例的代价分别为这两个函数,就认为他们的代价”差不多“。基于这些想法,人们提出了描述算法性质的”大O记法“。

五、大O记法
“大O记法”的严格定义:对于单调的整数函数f,如果存在一个整数函数g和是成熟c>0,是的对于充分大的n总有f(n)<=c*g(n),就说函数g是f的一个渐进函数(忽略常量因子),记为f(n)=O(g(n)) 易见,f(n)=O(g(n))说明在趋向无穷的极限意义下,函数f的增长速度受到函数g的约束。
把上述描述方式应用与算法的代价问题。假设存在函数g,是的算法A处理规模为n的问题实例所用的时间T(n)=O(g(n)),则称O(g(n))为算法A的 渐进时间复杂度,简称 时间复杂度。算法的空间复杂度S(n)的定义与此类似。
这有几点说明:
首先,如果T(n)=O(g(n)),那么对于任何增长速度比g(n)更快的函数g’(n),显然也有T(n)=O(g’(n)) 这说明上述定义考虑的是算法复杂度的上限。可能不大准确,但一般也够了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值