4复杂性渐近性态和其阶.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4复杂性渐近性态和其阶

复杂性的渐近性态及其阶 随着经济的发展、社会的进步、科学研究的深入,要求用计算机解决的问题越来越复杂,规模越来越大。但是,如果对这类问题的算法进行分析用的是第二段所提供的方法,把所有的元运算都考虑进去,精打细算,那么,由于问题的规模很大且结构复杂,算法分析的工作量之大、步骤之繁将令人难以承受。因此,人们提出了对于规模充分大、结构又十分复杂的问题的求解算法,其复杂性分析应如何简化的问题。 我们先要引入复杂性渐近性态的概念。设T(N)是在第二段中所定义的关于算法A的复杂性函数。一般说来,当N单调增加且趋于∞时,T(N)也将单调增加趋于∞。对于T(N),如果存在T’(N),使得当N→∞时有: (T(N )-T’(N ))/T(N ) → 0 那么,我们就说T’(N)是T(N)当N→∞时的渐近性态,或叫T’(N)为算法A当N→∞的渐近复杂性而与T(N)相区别,因为在数学上,T’(N)是T(N)当N→∞时的渐近表达式。 直观上,T’(N)是T(N)中略去低阶项所留下的主项。所以它无疑比T(N)来得简单。比如当 T(N)=3N 2+4Nlog2N +7 时,T’(N)的一个答案是3N 2,因为这时有: 显然3N 2比3N 2 +4Nlog2N +7简单得多。 由于当N→∞时T(N)渐近于T’(N),我们有理由用T’(N)来替代T(N)作为算法A在N→∞时的复杂性的度量。而且由于于T’(N)明显地比T(N)简单,这种替代明显地是对复杂性分析的一种简化。 进一步,考虑到分析算法的复杂性的目的在于比较求解同一间题的两个不同算法的效率,而当要比较的两个算法的渐近复杂性的阶不相同时,只要能确定出各自的阶,就可以判定哪一个算法的效率高。换句话说,这时的渐近复杂性分析只要关心T’(N)的阶就够了,不必关心包含在T’(N)中的常数因子。所以,我们常常又对T’(N)的分析进--步简化,即假设算法中用到的所有不同的元运算各执行一次,所需要的时间都是一个单位时间。 综上所述,我们已经给出了简化算法复杂性分析的方法和步骤,即只要考察当问题的规模充分大时,算法复杂性在渐近意义下的阶。与此简化的复杂性分析方法相配套,需要引入五个渐近意义下的记号:Ο、Ω、θ、ο和ω。 以下设f(N)和g(N)是定义在正数集上的正函数。 如果存在正的常数C和自然数N0,使得当N≥N0时有f(N)≤Cg(N)。则称函数f(N)当N充分大时上有界,且g(N)是它的一个上界,记为f(N)=Ο(g(N))。这时我们还说f(N)的阶不高于g(N)的阶。 举几个例子: (1)因为对所有的N≥1有3N≤4N,我们有3N =Ο(N); (2)因为当N≥1时有N+1024≤1025N,我们有N +1024=Ο(N); (3)因为当N≥10时有2N 2+11N -10≤3N 2,我们有2N 2+11N -10=Ο(N 2); (4)因为对所有N≥1有N 2≤N 3,我们有N2=Ο(N 3); (5)作为一个反例N 3≠Ο(N 2)。因为若不然,则存在正的常数C和自然数N0,使得当N≥N0时有N3≤C N 2,即N≤C 。显然当取N =max(N0,[C]+l)时这个不等式不成立,所以N3≠Ο(N 2)。 按照大Ο的定义,容易证明它有如下运算规则: Ο(f)+Ο(g)=Ο(max(f,g)); Ο(f)+ Ο(g)=Ο(f +g); Ο(f)·Ο(g)= Ο(f·g); 如果g(N)= Ο(f(N)),则Ο(f)+ Ο(g)= Ο(f); Ο(Cf(N))= Ο(f(N)),其中C是一个正的常数; f =Ο(f); 规则1的证明: 设F(N)= Ο(f) 。根据记号Ο的定义,存在正常数C1和自然数N1,使得对所有的N≥N1,有F(N)≤C1 f(N)。类似地,设G(N)=Ο(g),则存在正的常数C2和自然数N2使得对所有的N≥N2有G(N)≤C2g(N),今令: C3=max(C1, C2) N3=max(N1, N2) 和对任意的非负整数N, h(N)=max(f,g), 则对所有的N≥N3有: F(N)≤C1f(N)≤C1h(N)≤C3h(N) 类似地,有: G(N)≤C2g(N)≤C2h(N)≤C3h(N) 因而 Ο(f)+Ο(g) =F(N)+G(N)≤C3h(N)+ C3h(N) ?=2C3h(N) ?=Ο(h) ?=Ο(max(f,g)) 其余规则的证明类似,请读者自行证明。 应用这些规则的一个例子:对于 HYPERLINK /algorithm/complexity/chapter1.htm \l search 第一章中的算法search,在 HYPERLINK /algorithm/complexity/chapter2.htm 第二章给出了它的最坏情况下时间复杂性Tmax(m

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档