数据结构与算法分析(清华)第1章数据结构概论-2.pptVIP

数据结构与算法分析(清华)第1章数据结构概论-2.ppt

  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.3 抽象数据类型概念(ADT) 数据在计算机中存储必须按照数据的分类存储,数据分类应该用数据类型划分,数据类型用以刻画(程序)操作对象的特性,在高级语言编写的程序中,每个变量或表达式都有一个它所属的确定的数据类型,类型明显或隐含地规定了在程序执行期间变量或表达式所有可能的取值范围,以及在这些值上允许进行的操作。因此数据类型是一个值的集合和定义在这个值集合上的一组操作的总称。 按照值的不同属性,数据类型可以分为两类:原子类型和结构类型。原子类型的值是不可分解的,如高级语言中基本数据类型(整型、字符型等);结构类型是由若干成分按某种结构组成的,是可以分解的。如数组。 引入“数据类型”的目的,从硬件的角度看,是作为解释计算机内存中信息含义的一种手段,而对使用数据类型的用户来说,实现了信息的隐蔽,即将一切用户不必了解的细节都封装在类型中。例如,用户在使用“整型”类型时,既不需要了解“整数”在计算机内部是如何表示的,也不需要知道其操作是如何实现的。如“两个整数求和”,程序设计者注重的仅仅是其“数学上求和”的抽象特性,而不是其硬件的“位”操作如何进行。 Q1 数据类型与抽象数据类型的区别? 抽象数据类型与数据类型实质上是一个概念; 另一方面,抽象数据类型比数据类型的范畴更广,它不仅局限在处理器中已经定义并实现的数据类型,还包括用户在设计软件时自己定义的数据类型。 Q2 抽象数据类型如何定义? 例:线性表这样的抽象数据类型,其数学模型是:数据元素的集合,该集合内的元素有这样的关系:除第一个和最后一个外,每个元素有唯一的前趋和唯一的后继。可以有这样一些操作:插入一个元素、删除一个元素等。P24 Q3 抽象数据类型如何表示和实现? 抽象数据类型可以通过固有的数据类型(如整型、实型、字符型等)来表示和实现。 0.4 算法和算法分析 一、算法的概念和描述: 1、什么是算法 是对特定问题求解步骤的一种描述,算法是指令的有限序列,其中每一条指令表示一个或多个操作。 二、算法的描述和实现 描述---可采用自然语言、数学语言或约定的符号语言。 实现---必须借助程序设计语言提供的数据类型及其运算。 本课的描述---采用Java语言。 分析:语句的频度指的是该语句重复执行的次数。一个算法中所有语句的频度之和构成了该算法的运行时间。 语句1的频度是:n-1 语句2的频度是: ? 常见函数的时间复杂度有: O(1)表示算法的时间是一个常数,不依赖于n; O(n)表示算法的时间与n成正比,是线性关系; O(n2) ,O(n3) ,O(2n)分别称为平方阶、立方阶和指数阶; O(log2n)为对数阶 0.5 其他相关概念 1、程序(Program)就是供计算机执行后,能完成特定功能的指令序列(Instructions sequence) 程序=计算机指令序列 程序包含两方面的内容 数据对象(Objects)及数据对象之间关系 数据结构(Data structure) 对这些对象的处理过程 算法(Algorithm) 程序/数据结构/算法 程序 = 数据结构 + 算法 Program = Data Structure + Algorithm 数据结构vs.算法 明确了问题的算法,才能较好设计数据结构 要选择好算法,又常常依赖于合理的数据结构 程序是和数据结构不可分割的。程序在描述算法同时,也必须完整地描述作为算法的操作对象的数据结构。对于一些复杂的问题,常有因数据的表示方式和结构的差异,问题的抽象求解算法也会完全不同 程序的性质 目的性 程序有明确的目的,程序运行时能完成赋予它的功能 分步性 程序为完成其复杂的功能,由一系列计算机可执行的步骤组成 有序性 程序的执行步骤是有序的,不可随意改变程序步骤的执行顺序 有限性 程序是有限的指令序列,程序所包含的步骤是有限的 操作性 有意义的程序总是对某些对象进行操作,使其改变状态,完成其功能 2、程序设计(Program design ) :设计和编制程序的过程 设计程序:数据结构设计和算法设计 编制程序:把设计转化为某种程序语言的代码 程序设计需要 程序设计方法 – 软件工程(Software Engineering)方法学 结构化设计方法、面向对象方法 程序设计语言 – 程序语言学 Basic, Pascal, C, C++, Java, C#…… 什么是好的程序? 高效(Efficient) 可靠(Reliable) 易读(Easy to read) 可维护(Maintainable) 可重用(Re-usable) 可移植(Portable) …… 3、程序设计语言是人与计算机对话的工具,是用来书写计算机程序的语言 人机语言(human-machine languag

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档