第1章绪论(数据结构).pptVIP

  1. 1、本文档共60页,可阅读全部内容。
  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文档。上传文档
查看更多
第1章绪论(数据结构).ppt

数据结构与应用 内容简介 教材目录 第1章 绪论 本章主要内容 1.1 数据结构的产生和发展 计算机处理问题的一般过程: 数据结构研究内容 数据计算问题:百鸡问题 非数值计算问题:通讯录管理问题 非数值计算问题:学籍管理问题 非数值计算问题:家庭成员的关系 非数值计算问题:天然气管道的铺设 典型逻辑结构 存储结构 顺序存储 链式存储 逻辑结构和存储结构之间的关系 算法特性 算法与程序 算法描述 算法设计要求 与时间相关因素 算法的执行时间 算法分析:大O符号 算法分析举例 算法空间性能分析 数据结构:相互之间存在一定关系的数据元素的集合。按照视点的不同,数据结构分为逻辑结构和存储结构。 逻辑结构:指数据元素之间逻辑关系的整体。 关联方式或邻接关系 数据的逻辑结构是从具体问题抽象出来的数据模型 存储结构:又称为物理结构,是数据及其逻辑结构在计算机中的表示。 实质上是内存分配, 在具体实现时,依赖于计算机语言。 线性表:数据元素之间存在着一对一的线性关系 集合:数据元素之间就是 “属于同一个集合” 树:数据元素之间存在着一对多的层次关系 A B C D E F G H I J M K L 图:数据元素之间存在着多对多的任意关系。 B A C D F E 数据结构在计算机中的表示(又称映像)称为数据的物理结构,或称存储结构。它所研究的是数据结构在计算机中的实现方法,包括数据结构中元素的表示及元素间关系的表示。 顺序存储 链式存储 散列存储 索引存储 顺序存储:把逻辑上相邻的元素存储在物理位置相邻的存储单元中。顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的数组来实现。 链式存储:对逻辑上相邻的元素不要求其物理位置相邻,元素间的逻辑关系通过附设的指针字段来表示。链式存储结构通常借助于程序设计语言中的指针类型来实现。 根据关键字key?H(key),来确定存储地址 散列存储 索引存储 a4 a3 a2 a1 数据的逻辑结构属于用户视图,是面向问题的,反映了数据内部的构成方式;数据的存储结构属于具体实现的视图,是面向计算机的。 一种数据的逻辑结构可以用多种存储结构来存储,而采用不同的存储结构,其数据处理的效率往往是不同的。 算法(Algorithm): 是对特定问题求解步骤的一种描述,是指令的有限序列。其中每一条指令表示一个或多个操作。 1.4 算法 例:求整型数组元素中的最大值 求解思路:采用类似“打擂”的方法 Step 1:设擂主。最初把数组首元素A[0]设为擂主,即A[0]最小数,以min表示,min= A[0]; Step 2:从次元素A[1]直至A[n-1]依次与min相比,如果比min小,则该数组元素为新擂主, Step 3:输出最小数min 操作步骤: 有穷性。一个算法必须在有穷步之后结束,即必须在有限时间内完成。 确定性。算法的每一步必须有确切的定义,无二义性。算法的执行对应着相同的输入仅有唯一的一条路径。 可行性。算法中的每一步都可以通过已经实现的基本运算的有限次执行得以实现。 输入。一个算法具有零个或多个输入,这些输入取自特 定的数据对象集合。 输出。一个算法具有一个或多个输出,这些输出同输入 之间存在某种特定的关系。 算法的含义与程序十分相似,但又有区别。 一个程序不一定满足有穷性。例如,操作系统,只要整个系统不遭破坏,它将永远不会停止,即使没有作业需要处理,它仍处于动态等待中。因此,操作系统不是一个算法。 程序中的指令必须是机器可执行的,而算法中的指令则无此限制。 算法代表了对问题的解,而程序则是算法在计算机上的特定的实现。 一个算法若用程序设计语言来描述,则它就是一个程序。 自然语言 流程图 程序设计语言 类程序设计语言 伪代码 正确性。算法的执行结果应当满足预先规定的功能和性能要求。 可读性。一个算法应当思路清晰、层次分明、简单明了、易读易懂。 健壮性。当输入不合法数据时,应能作适当处理,不至于引起严重后果。 高效性。有较高的时间效率并能有效使用存储空间。 算法分析 算法分析(Algorithm Analysis): 对算法所需要的计算机资源——时间和空间进行估算。 时间复杂性(Time Complexity) 空间复杂性(Space Complexity) 算法选用策略 问题的规模 选用的程序设计语言 编译程序所产生的机器代码的质量 机器执行的速度 int Algo1( int n) { if (n0) return 0; sum=0; for( i=0 ;i=n; i++ ) sum=sum + i ; return sum; } 算法 = 控制结构 + 原操作 算法执行时间= ∑( 基

文档评论(0)

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

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

1亿VIP精品文档

相关文档