算法设计与分析:第二章 算法分析基础.pptxVIP

算法设计与分析:第二章 算法分析基础.pptx

  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文档。上传文档
查看更多
第二章 算法分析基础;公元5世纪末,我国古代数学家张丘建在他所撰写的《算经》中,提出了这样一个问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”意思是公鸡每只5元、母鸡每只3元、小鸡3只1元,用100元钱买100只鸡,求公鸡、母鸡、小鸡的只数。;令a为公鸡只数,b为母鸡只数,c为小鸡只数。列出约束方程: a+b+c=100 (1) 5a+3b+c/3=100 (2) c%3=0 (3);算法1 百鸡问题 1. void chicken_question(int n,int k,int g[],int m[],int s[]) 2. { 3. int a,b,c; 4. k = 0; 5. for (a=0;a=n;a++){ 6. for (b=0;b=n;b++){ 7. for (c=0;c=n;c++) { 8. if ((a+b+c==n)(5*a+3*b+c/3==n)(c%3==0)) { 9. g[k] = a; 10. m[k] = b; 11. s[k] = c; 12. k++; 13. } 14. } 15. } 16. } 17. };算法2 改进的百鸡问题 1. void chicken_problem(int n,int k,int g[],int m[],int s[]) 2. {int i,j,a,b,c; k = 0; i = n/5; j = n/3; 3. for (a=0;a=i;a++){ 4. for (b=0;b=j;b++) { 5. c = n–a–b; 6. if ((5*a+3*b+c/3==n)(c%3==0)) { 7. g[k] = a; 8. m[k] = b; 9. s[k] = c; 10. k++; 11. } 12. } 13. } 14. };米开朗基罗创作的西斯廷教堂穹顶画《创世纪》;PARTITION(A,p,q) // A是一个实数数组,p, q是该数组的上下限 { x←A[p]; // A[p]被选中 i←p ; for j←p+1 to q do if (A[j]≤x) then { i←i+1; A[i] ?A[j];}// 交换A[i]和A[j]的内容 A[p] ?A[i] return i } ;#include stdio.h void main(){int a[6],i,j,x,p=1,q=5,c,s; a[0]=0;a[1]=200;a[2]=100;a[3]=10;a[4]=30;a[5]=120; x=a[p]; i=p; for(j=p+1;j=q;j++) if (a[j]=x) { i=i+1; c=a[i]; a[i]=a[j]; a[j]=c; } c=a[p]; a[p]=a[i]; a[i]=c; printf(i=%d,a[p]=%d\n,i,a[p]); for(i=1;i=q;i++)printf(%d,,a[i]); };2.1 算法分析——时间复杂性;2.1 算法分析——时间复杂性;定义: 若存在两个正的常数c和n0,对于任意n≥n0,都有T(n)≤cf(n),则称T(n)=O(f(n)) 。 大O符号描述增长率的上限,表示T(n)的增长最多像f(n)增长的那样快,换言之,当输入规模为n时,算法消耗时间的最大值,这个上限的阶越低,结果越有价值。 该算法的运行时间至多是O(f(n)) 。;例如: 当有T(n) ≤100n+n 取n0=5,对任意n≥ n0,有: T(n) ≤100n+n=101n 令c=101, f(n)=n,有: T(n) ≤cn=cf(n) 所以T(n)=O(f(

文档评论(0)

学习让人进步 + 关注
实名认证
文档贡献者

活到老,学到老!知识无价!

1亿VIP精品文档

相关文档