数据结构课件第1章绪论1章节.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文档。上传文档
查看更多
基本操作:  InitComplex( Z, v1, v2 ) DestroyComplex( Z) GetReal( Z, realPart )  GetImag( Z, ImagPart ) Add( Z1, Z2, sum ) // 基本操作的函数原型说明  void add( complex z1, complex z2, complex sum ) {    // 以 sum 返回两个复数 z1,z2 的和    // 基本操作的实现   sum.realpart = z1.realpart + z2.realpart;   sum.imagpart = z1.imagpart + z2.imagpart;  } ▲ 本书采用类 C 语言作为抽象数据类型的描述工具。 1.4 算法和算法分析 1.4.1 算法 通俗地讲,算法就是一种解题的方法。 严格地讲算法是对特定问题求解步骤的一种描述, 它是指令的有限序列,其中每一条指令表示一个或多 个操作。 输 出: 一个算法有一个或多个输出,这些输出是同输入有 着某些特定关系的量。 (4) 输 入: 一个算法有零个或多个输入,这些输入取自于某个 特定的对象集合。它们可以使用输入语句由外部提 供,也可以使用赋值语句在算法内给定。 算法的五个特性: 有穷性: 一个算法必须总是在执行有穷步之后结束,且每一 步都在有穷时间内完成。 确定性: 算法中每一条指令必须有确切的含义,无二义性。 并且在任何条件下,算法同时只有唯一的一条执行 路径,即对于相同的输入只能得出相同的输出。 (3) 可行性: 算法描述的所有操作都必须足够基本,都是可以通 过已经实现的基本运算执行有限次来实现的。 序列中的每个操作都是可以简单完 成的,其本身不存在算法问题,例 如,“求 x 和 y 的和”就不够基本。 算法的含义与程序十分相似,但二者是有区别的。 注 1、一个程序不一定满足有穷性(如一个操作系统在用户未使 用前一直处于“等待” 的循环中, 直到出现新的用户事件为 止。这样的系统可以无休止地运行,直到系统停工。); 2、程序中的指令必须是机器可执行的,而算法中的指令则无 此限制。算法若用计算机语言来书写,则它就可以是程序。 一个算法可以用自然语言、数学语言或约定符号来描述, 也可以用流程图、计算机高级程序语言(如 C 语言)或伪代 码等来描述 。 1.4.2 算法设计的要求 设计一个“好”的算法应考虑以下几个方面(评价标准): (1) 正确性:算法应满足具体问题的需求。 “正确”的含义有很大的差别,大体可分为以下四个层次: 1)、不含语法错误; 2)、对于几组输入数据能够得出满足规格说明要求的结果; 3)、对于精心选择的、典型的、苛刻的、带有刁难性的几组数 据能够得出满足规格说明要求的结果; 4)、对于一切合法的输入数据都能产生满足规格说明要求的结 果。 通常以第 3) 层意义的正确性作为衡量算法是否合格的标准。 (3) 健壮性:算法应具有容错处理功能。 当输入的数据非法时,算法应当恰当地作出反映或进行相 应处理,而不是产生莫名奇妙的输出结果。并且,处理出错的 方法不应是中断程序的执行,而应是返回一个表示错误或错误 性质的值,以便在更高的抽象层次上进行处理。 (4) 效率与低存储量需求:效率指的是算法执行的时间(时间 复杂性);存储量需求指算法执行过程中所需要的最大存 储空间(空间复杂性) 。一般这两者与问题的规模有关。 (2) 可读性:算法在正确的前提下可读性是摆在第一位的,这 在当今大型软件需要多人合作的环境下是至关重要的,另 一方面,晦涩难读的程序易于隐藏错误而难以调试。 1.4.3 算法效率的度量 一个算法执行时间,从理论上是不能算出来的,必须通 过依据该算法编制的程序上机运行测试才能知道。 度量一个程序的执行时间通常有两种方法: (1)、事后统计的方法 此方法有两个

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档