- 1、本文档共82页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]数据结构-ch01
程序设计语言小结 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的条件很难确定,所以该步不具有可行性; 算法步骤的粒度可以是很细的,细到基本语句、基本步骤,也可以是很粗的,但是可以通过逐步细化,最后细到可以实现,这就是算法设计中的逐步细化过程。 基本操作:是指算法运行中起主要作用且花费最多时间的操作。 基本操作:是指算法运行中起主要作用且花费最多时间的操作。 基本操作:是指算法运行中起主要作用且花费最多时间的操作。 1.5 算法(Algorithm) 一、算法及特性 算法是求解特定问题的步骤的有限序列。 算法由步骤组成,每一个步骤表示一个操作或任务。 步骤序列是对问题求解过程的描述,按照步骤的顺序,完成步骤所规定的任务,就可以求解特定的问题。 第1章 绪论 算法可以用一个三元组来描述:A=(S,D,R) S是步骤的有限集合,S={s1,s2,……sn}; D是算法求解问题所涉及的数据元素集合,是算法的操作或处理的对象,包括可能的输入和算法产生的输出。 R是步骤之间的关系集合,由一些控制结构组成: 顺序结构,依次执行算法的各步骤,如执行步骤A然后执行步骤B
文档评论(0)