第2章_数据结构和算法_第1节_概述.pptVIP

  1. 1、本文档共49页,可阅读全部内容。
  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文档。上传文档
查看更多
第2章 数据结构与算法;学习内容与要求;Data Structures + Algorithms = Programs ——Nicklaus Wirth;一、数据结构 研究和讨论的范畴 ;“学生”数据;“课程”数据;“选课”数据;学生 (学号,姓名,性别,籍贯);UNIX文件系统的系统结构图;数据结构的研究内容 综合上述例子可见,描述这类非数值计算问题的数学模型不再是数学方程,而是诸如表、树和图之类的数据结构。 简单地说,作为一门学科,数据结构主要研究非数值计算的程序设计问题当中计算机的操作对象(数据)以及它们之间的关系(逻辑结构和物理结构)和操作(算法实现)。;若干名词术语;数据(data);数据元素 (data element)和 数据项(data item);数据对象 (data object);什么是数据结构;数据元素间的逻辑关系,即数据的逻辑结构。 数据元素及其关系在计算机存储内的表示,即数据的存储表示(物理结构、物理表示)。 数据的运算,即对数据元素施加的操作。;数据的逻辑结构;数据的逻辑结构可归结为以下四类:;数据逻辑结构的描述方式;D={01,02,03,04,05,06,07,08,09,10} R1={08,05,05,02,02,01,01,03,03,09,09,04,04,06,06,10,10,07} R2={01,02,01,05,01,08,02,03,02,04,05,06,,05,07,08,09,08,10} R3={01,04,04,01,01,05,05,01,01,08,08,01,04,07,07,04,05,06,06,05,06,04,04,06,05,08,08,05,06,09,09,06,09,02,02,09,08,10,10,08,04,03,03,04};R1={08,05,05,02,02,01,01,03,03,09,09,04,04,06,06,10,10,07};R2={01,02,01,05,01,08,02,03,02,04,05,06,05,07,08,09,08,10};R3={01,04,04,01,01,05,05,01,01,08,08,01,04,07,07,04,05,06,06,05,06,04,04,06,05,08,08,05,06,09,09,06,09,02,02,09,08,10,10,08,04,03,03,04};由上述数据结构的描述可得出结论:相同数据元素的集合(即同一数据对象),因其关系的不同而构成不同的数据逻辑结构。 对一实际应用问题,合理选择数据逻辑结构才能够设计出有效的算法。;数据的存储结构;顺序存储(矢量存储)结构 Contiguous implementation(vector implementation)  所有元素存放在一片连续的存储单元中,逻辑上相邻的元素存放到计算机内存中其存储地址仍然相邻。 ;顺序和链式存储结构示意图;数据类型;抽象数据类型 (ADTs: Abstract Data Types);抽象数据类型的描述方法;ADT基本操作的定义格式;例如,抽象数据类型“复数”的定义:;基本操作:; GetImag( Z, ImagPart ) 初始条件:复数已存在。 操作结果:用ImagPart返回复数Z的虚部值。;抽象数据类型的实现;二、算法;关于算法 算法是为了解决某类问题而设计的一个有限长的操作序列。;有穷性:对于任意一组合法输入值,在执行有穷步骤之后一定能结束,即:算法中的每个步骤都能在有限时间内完成。;有输入:作为算法加工对象的量值,通常体现为算法中的一组变量。有些输入量需要在算法执行过程中输入,而有的算法表面上可以没有输入,实际上输入已被嵌入算法之中。;用自然语言描述算法:用我们日常生活中的自然语言也可以描述算法。;算法和程序的关系 算法≠程序! 算法着重体现思路和方法,程序着重体现计算机的实现。 程序不一定满足有穷性(例如死循环情形);另外,程序中的指令必须是机器可执行的,算法中的指令无此限制。 算法用计算机语言来书写时才是程序。;算法设计原则 正确性 可读性 健壮性 高效率 低需求; 一个特定算法的运行时间由其“运行工作量”决定。其运行工作量的大小,通常只依赖于问题的规模(通常由问题涉及的数据量决定,用整数量n表示),或者说,它是问题规模的函数。;程序执行时间的计算;如何估算算法的时间复杂度?;例 一 两 个 矩 阵 相 乘;例 二 选 择 排 序;例 三 冒 泡 排 序;程序指令本身所占空间 常量和变量所占空间 数据操作所需的工作单元 实现数据计算时所需的辅助空间

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档