JX-算法分析与设计(一)算法概述-8【荐】.pptVIP

JX-算法分析与设计(一)算法概述-8【荐】.ppt

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

* * * * * * * * * * 3. 插入排序算法的复杂性分析(续) 算法分析实例 (8) * templateclass Type void insertion_sort(Type *a, int n) { Type key; // cost times for (int i = 1; i n; i++){ // c1 n key=a[i]; // c2 n-1 int j=i-1; // c3 n-1 while( j=0 a[j]key ){ // c4 sum of ti a[j+1]=a[j]; // c5 sum of (ti -1) j--; // c6 sum of (ti -1) } a[j+1]=key; // c7 n-1 } } Example1.2源代码示例 3. 插入排序算法的复杂性分析(续) 算法分析实例 (9) * 1)最好情况:ti=1, for 1 ? i n; 3. 插入排序算法的复杂性分析(续) 算法分析实例 (10) * 2)最坏情况:ti ? i+1, for 1 ? i n; 3. 插入排序算法的复杂性分析(续) 算法分析实例 (11) * 例如 :输入数据为a[i]=n-i, i=0, 1,…, n-1时,算法为最坏情形。 综合可得:Tmax(n)= θ(n2) 4. 最优算法: 问题的计算时间下界为?(f(n)),则计算时间复杂性为O(f(n))的算法是最优算法。 排序问题的计算时间下界为?(nlogn),计算时间复杂性为O(nlogn)的排序算法是最优算法。堆排序算法是一种最优算法。 算法分析实例 (12) * 5. 递归算法的复杂性分析: 算法分析实例 (13) * int factorial(int n) { if (n == 0) return 1; return n*factorial(n-1); } To be continued… * 算法和程序的概念 算法复杂性及其分析方法 渐近表达式,5个渐近记号和常用函数 C++算法描述元素 算法复杂性分析示例 NP完全性理论 小结: * 谢谢大家! * JS,DC,DD * * * * * * * * * * * * * * * * * * * * * * * * 算法复杂性分析(11) 算法的渐近上界记号O是实际衡量算法优劣时的最主要符号。根据定义,其运算规则如下(P3): 1、O(f(n))+O(g(n)) = O(max{f(n),g(n)}) 2、O(f(n))+O(g(n)) = O(f(n)+g(n)) 3、O(f(n))*O(g(n)) = O(f(n)*g(n)) 4、O(cf(n)) = O(f(n)) 5、如果g(n)= O(f(n)) ,则 O(f(n))+O(g(n)) = O(f(n)) 6、f=O(f) * 算法复杂性分析(12) 算法的渐近上界记号O规则1: O(f(n))+O(g(n)) = O(max{f(n),g(n)}) 的证明。 1)设f1(n) = O(f(n)) ,根据定义则存在正常数c1和自然数n1,使得对所有n? n1,有f1(n) ? c1f(n) 。 2)设g1(n) = O(g(n)) ,根据定义则存在正常数c2和自然数n2,使得对所有n? n2,有g1(n) ? c2g(n) 。 3)令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(

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档