数据结构 (吴跃)-ch01.ppt

  1. 1、本文档共82页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
由Jeannette Wing博士提出的计算思维可能是近十年来最具有基础性、长期性的学术思想。 计算思维是一种本质的、所有人都必须具备的思维方式,就像识字、做算术一样;任务是在2050年以前,让地球上每一位公民都具备计算思维能力。以前扫盲是扫“文盲”,21世纪是要扫“计算盲”。用计算思维解释各种学科、教育、科研活动和机构变革。 正如印刷术便利了读、写、算术(Reading,Writing,and Arithmetic——3R)能力的培养,计算机的出现将便利我们对计算思维的开发。 计算思维包括解决问题、设计系统、理解人类行为等方面的思维。计算思维的很多思想方法对应了计算机科学的众多分支。 程序设计语言小结 4. 数据对象(Data Object): 数据对象是具有相同性质的数据元素的集合,是数据的一个子集。 例如,迷宫数据对象中的数据元素是一个个点;电话薄数据对象中数据元素是每个人的记录;图书目录数据对象中数据元素是一张张书目卡片。 数据、数据对象、数据元素和数据项这四个概念他们相互是集合和子集的关系。即,数据对象是数据的子集,数据元素是数据对象的子集,数据项又是数据元素的子集。 9.数据类型(Data Type) 10.抽象数据类型 (Abstract Data Type ,ADT) ADT一般包含数据元素、数据元素之间关系及操作三要素(D, R, O),其中: D是数据元素集, R是D上的关系集合, O是对D的基本操作集。 ADT是由用户定义的、用以表示应用问题的数学模型。其特点是: 抽象性:将定义与实现相分离,定义时只考虑数据类型的数学抽象特性,即只定义可以使用的数据元素、数据元素之间的关系以及一组抽象的操作;实现时给出这些数据元素的表示及其操作的实现细节。 扩展性:不再局限于计算机中已定义并实现的基本数据类型,用户可以通过抽象数据类型的定义,用已有的数据类型,扩展出尚未实现的数据类型。 抽象数据类型定义格式: ADT 抽象数据类型名 { 数据对象:数据对象的定义 数据关系:数据关系的定义 基本操作:基本操作的定义 } ADT 抽象数据类型名 例:银行账户问题的抽象数据 ADT BankAccount { 数据对象:具有下列属性的元素 String ownerName; //用户名 int accountNumber; //账号 float balance; //余额 数据关系:同属于一个银行的账户 基本操作: String getOwnerName(); //查询用户名 int getAccountNumber(); // 查询用户账号 float getBalance(); // 查询余额 String openAccount(String newName ); //开户 void cancelAccount(int newNum); // 注销账户 float deposit(float anAmount); // 存款并返回新余额 float withdraw(float anAmount);// 取款并返回取款额 } ADT BankAccount 抽象数据类型与数据结构的关联 抽象数据类型一般包含数据元素、数据元素之间关系及操作三要素(D, R, O)。我们定义的数据结构包含四个元素(D,L,S,O),也包含数据元素D、数据元素之间关系L及操作O, 可以看到:抽象数据类型所包含的数据元素之间的关系仅仅是数据的逻辑结构L,而数据结构还包括数据的存储结构S。因此,可以说数据结构包括了抽象数据类型。 二、算法描述 算法可以用多种方式来描述: 可以用自然语言描述,还可以用框图、 程序设计语言等来描述。 算法描述1:(自然语言描述) 算法描述2:(框图描述) 常见的时间复杂度: 常数阶O (1) 对数阶O (log2n) 线性阶O (n) 线性对数阶O (nlog2n) 多项式阶O (n2)、O (n3) 指数阶O (2n) 例如,菜谱中“加入食盐少许” ,少许是不确切的; “如果A3 则执行A+B,如果A6 则执行A-B”,对这样的算法步骤,当3A6时,下一步骤就不确定了; 例如,“如果任一大于4的偶数都可以表示为两个奇素数之和,则执行B”,由于判断执行B的条件很难确定,所以该步不具有可行性; 算法步骤的粒度可以是很细的,细到基本语句、基本步骤,也可以是很粗的,但是可以通过逐步细化,最后细到可以实现,这就是算法设计中的逐步细化过程。 基本操作:是指算法运行中起主要作用且花费最多时间的操作。 基本操作:是指算法运行中起主要作用且花费最多时间的操作。 基本操作:是指算法运

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档