2016数据结构基础知识.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文档。上传文档
查看更多
第1章 数据结构概述 算法设计的目标 设计一个“好”的算法应考虑达到下面几个目标: 1、正确性(Correctness):算法必须正确。 2、可读性(Readability):算法易读、易懂、便于交流。 3、健壮性(Robustness) :算法有稳定、容错、可靠、适应等性能。 4、效率与低存储量需求:时间效率、空间效率高 1.3 算法与算法分析 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 算法的时间复杂度 算法的时间复杂度(Time Complexity)又称为计算复杂度,即算法执行所使用的时间,是算法有效性的度量之一。 算法的执行时间需通过依据该算法程序在计算机上运行时所消耗的时间来度量。 (1)书写算法的程序设计语言 (2)编译产生的机器语言代码的质量 (3)机器执行指令的速度 (4)问题规模 算法的性能分析 一个算法的性能分析可以从算法执行的时间与算法的所占用的内存空间两个方面来进行。 1.3 算法与算法分析 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 例: 求1到n的整数和。 int sum=0; //执行1次 for(int i=1;i=n;i++) //int i=1执行1次,i=n执行n+1次,i++执行n次 { sum += i; //循环体内语句执行n次 } 基本语句共执行3n+3次 从上述例子可以看出,分析一个算法的运行时间的计算是相当繁琐的,特别是对于比较复杂的算法更是如此。但是实际上,不一定要精确的去计算出算法的运行时间,只要计算出相应的数量级(Order)即可。 一般情况下,算法的运行时间T是问题规模n的函数f(n),算法的时间度量记作 T(n)= O(f(n)) 例如,对上例中的算法,只要确定for循环中的基本操作被执行的次数n,就可以求出时间复杂度为O(n)。 最坏时间复杂度、最好时间复杂度和平均时间复杂度。 1.3 算法与算法分析 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 计算程序段的时间复杂度举例 1.3 算法与算法分析 (1) i=1; k=0; while(in) { k=k+10*i; i++; } (1) i=1; k=0; while(in) { k=k+10*i; i++; } (2) for(i=1;i=n; i++)   for(j=1;j=n; j++) { ++x; s+=x; } } 2n2 2 n 2(n-1) T(n)=2+n+2(n-1)=3n T(n)=O(n) T(n)=2n2 T(n)=O(n2) Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 计算程序段的时间复杂度举例 1.3 算法与算法分析 (3) for(i=1;in;i++) {y=y+1; for(j=0;j=2*n;j++) x++; } n n-1 (n-1)(2n+1) 2n(n-1) T(n)=n+n-1+(n-1)(2n+1)+2n(n-1)=4n2-2n-1 T(n)=O(n2) Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 A

文档评论(0)

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

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

1亿VIP精品文档

相关文档