算法分析方法【荐】.pptVIP

  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文档。上传文档
查看更多
算法分析方法【荐】.ppt

算法设计与分析 算法分析方法 一. 算法复杂性分析 算法复杂性 = 算法所需要的计算机资源 算法的时间复杂性T (n); 算法的空间复杂性S (n)。 算法的处理器复杂性P (n) 其中 n 是问题的规模(输入大小)。 1. 算法的时间复杂性 最坏情况下的时间复杂性 Tmax(n) = max{ T(I) | size(I)=n } 最好情况下的时间复杂性 Tmin(n) = min{ T(I) | size(I)=n } 平均情况下的时间复杂性 Tavg(n) = 其中I是问题的规模为n的实例,p(I)是实例I出现的概率。 2. 复杂性的渐近性质 T (n) ?? , as n?? ; (T (n) – t (n) )/ T (n) ?0 ,as n??; t (n)是T (n)的渐近性态,称为算法的渐近复杂性。 在数学上, t (n)是T (n)的渐近表达式,是T (n)略去低阶项留下的主项。它比T (n) 简单。 例T(n)=3n2+4nlog2n+7 t(n)=3n2 3. 渐近上界记号O 设f(n)和g(n)是将非负整数映射为实数的函数。如果存在实常数c 0 和整常数n0 ? 1, 对于每个n ? n0的整数,满足0 ? f (n) ? cg (n) ,则称f(n)是O(g(n))。 也可读作“f(n)是g(n)的大O”或“f(n)是g(n)阶的”。 渐近上界记号O 例1-1 7n-2是O(n) 。 证明:由大O的定义可知,需要找一个实常数c 0 和整常数n0 ? 1,对于每个n ? n0的整数,满足7n-2 ?cn。容易看出,一种可能的选择是c=7和n0=1,实际上,这只是无数个可选方式之一,因为任何大于7的实数c,以及任何大于或等于1的整数n0都会满足条件。 渐近上界记号O 例1-2 20n3+10nlogn+5是O(n3) 。 证明:对于n ? 1, 20n3+10nlogn+5 ?35n3。 实际上, aknk+ak-1nk-1+a0总是O(nk)的。 渐近上界记号O 例1-3 3logn+loglogn是O(logn) 。 证明:对于n ? 2, 3logn+loglogn ?4logn。 因为对于n=1,loglogn无意义。 渐近上界记号O 例1-4 2100是O(1) 。 证明:对于n ? 1, 2100 ? 2100 *1。 因为,变量n并没有出现在不等式中,我们处理的是恒定值函数。 大O符号的使用 因为大O符号已经代表“小于或等于”概念,不写成“f(n) ?O(g(n))”。同样尽管“f(n)=O(g(n))”这种说法很常见,但它并不完全正确(就通常理解的“=”关系而言),而且“f(n) ?O(g(n))或“f(n)O(g(n))”实际上都不正确。最好说“f(n)是O(g(n))”。如果更偏向于用数学语言,称 f(n) ? O(g(n)) 也是正确的。因为大O表示从技术上说定义了函数的全集。 渐近分析的记号 (1)O(f)+O(g)=O(max(f,g)) (2) O(f)+O(g)=O(f+g) (3) O(f)O(g)=O(fg) (4)如果g(n)=O(f(n)),则O(f)+O(g)=O(f) (5) O(cf(n))=O(f(n)),其中c是正常数 (6)f=O(f) 规则O(f(n))+O(g(n)) = O(max(f(n),g(n))) 的证明: 对于任意f1(n) ? O(f(n)) ,存在正常数c1和自然数n1,使得对所有n? n1,有f1(n) ? c1f(n) 。 类似地,对于任意g1(n) ? O(g(n)) ,存在正常数c2和自然数n2,使得对所有n? n2,有g1(n) ? c2g(n) 。 令c3=max{c1, c2}, n3 =max{n1, n2},h(n)= max{f(n),g(n)} 。 则对所有的 n ? n3,有 f1(n) +g1(n) ? c1f(n) + c2g(n) ? c3f(n) + c3g(n)= c3(f(n) + g(n)) ? c32 max{f(n),g(n)} = 2c3h(n) = O(max(f(n),g(n))) . 与大O相关的渐近符号大?和大? 设f(n)和g(n)是将整数映射为实数的函数。如果存在实常数c 0 和整常数n0 ? 1, 对于n ? n0,满足 f (n) ? cg (n) ,则称f(n)是 ?(g(n))(读作“f(n)是g(n)的大?”)。在渐近意义上,

文档评论(0)

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

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

1亿VIP精品文档

相关文档