《数据结构与算法》第一章 绪论.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设每个书目含:书名,作者,登陆号,分类,出版年月 对图书目录常有如下操作: ☆查找-某书在书库中是否存在? ☆插入-购进新书时登陆 ☆删除-报废或丢失的书,需从目录中去掉 数据的各种逻辑结构和物理结构,以及它们之间的关系 为每种结构定义相应的运算 设计相应的算法 分析算法的效率 3214 6587 9345 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。 抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部的使用。    GetReal( Z, realPart )    初始条件:复数 Z 已存在。 操作结果:用realPart 返回 Z 的实部值。   GetImag( Z, ImagPart )    初始条件:复数 Z 已存在。 操作结果:用ImagPart 返回 Z 的虚部值。   Add( Z1, Z2, sum )    初始条件:Z1, Z2 是复数。 操作结果:用sum 返回 z1, z2 的和值。 } ADT Complex 如何衡量一个正确算法的好坏? 运行所花费的时间(时间特性) 所占用存储空间的大小(空间特性) 其他(可读性,易读性,健壮性等) 一个算法执行时间,从理论上是不能算出来的,必须通过依据该算法编制的程序上机运行测试才能知道。 事后统计容易陷入盲目境地,当程序执行很长时间仍未结束时,不易判别是程序错了还是确实需要那么长的时间。 既然执行一种原操作所需的时间与算法无关,那么我们只讨论影响运行时间的另一个因素——算法中进行原操作的次数。 1.3 抽象数据类型的实现 例:利用 C++ 语言实现的“复数”类型如下描述: class Complex { private: double realpart; //实部    double imagpart; //虚部 public: Complex(double rp=0,double ip=0); //构造函数 ~Complex( ) { } //析造函数 double GetReal( ) const; …… }; 1.4.1 算 法 一个有限的指令集,遵循指令流可以完成特定的功能。 1.4 算法和算法分析 一个算法可以用自然语言来描述,也可以用流程图、计算机高级程序语言(如 C 语言)或伪代码等来描述 。 算 法 分 析 时间和空间特性的巨大改进源自于 更好的数据结构和算法 一个算法的执行时间通常有两种计算方法: (1)、事后统计的方法 此方法有两个缺陷:一是必须先运行程序;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素,有时容易掩盖算法本身的优劣。 如何估算算法的时间效率? (2)、事前分析估算的方法 显然,后三条受着计算机硬件和软件的制约,既然是“估算” 仅需考虑前两条。 与算法执行时间相关的因素有: 1) 算法选用的策略 2) 问题的规模 3) 编写程序的语言 4) 编译程序产生的机器代码的质量 5) 计算机执行指令的速度 一般认为算法的效率只依赖于问题的规模。 问题的规模如何计算? 例:考虑计算三次多项式 ax3 + bx2 + cx + d 方法1:s = a ? x ? x ? x + b ? x ? x + c ? x + d ( 6次乘法,3次加法) 计算量大 方法2:s = a ; s = s ? x + b ; s = s ? x + c ; s = s ? x + d ; ( 3次乘法,3次加法) 计算量小 方法2 的原理: a ? x ? x ? x + b ? x ? x + c ? x + d = (a x + b ) x2 + c x + d = ((a x + b ) x + c ) x + d 问题的规模一般根据问题本身的性质合理地确定: 例1:对 n 个电话号码进行排序,这里 n 即可作为问题的 规模。 显然对 1000 个电话号码进行排序比对

文档评论(0)

白领文档(原创) + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档