电子科技大学数据结构第一章精品.pptVIP

  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文档。上传文档
查看更多
电子科技大学数据结构第一章精品.ppt

例如,菜谱中“加入食盐少许” ,少许是不确切的; “如果A3 则执行A+B,如果A6 则执行A-B”,对这样的算法步骤,当3A6时,下一步骤就不确定了; 例如,“如果任一大于4的偶数都可以表示为两个奇素数之和,则执行B”,由于判断执行B的条件很难确定,所以该步不具有可行性; 算法步骤的粒度可以是很细的,细到基本语句、基本步骤,也可以是很粗的,但是可以通过逐步细化,最后细到可以实现,这就是算法设计中的逐步细化过程。 例:银行账户问题的抽象数据 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.5 算法(Algorithm) 一、算法及特性 算法是求解特定问题的步骤的有限序列。 算法由步骤组成,每一个步骤表示一个操作或任务。 步骤序列是对问题求解过程的描述,按照步骤的顺序,完成步骤所规定的任务,就可以求解特定的问题。 第1章 绪论 算法可以用一个三元组来描述:A=(S,D,R) S是步骤的有限集合,S={s1,s2,……sn}; D是算法求解问题所涉及的数据元素集合,是算法的操作或处理的对象,包括可能的输入和算法产生的输出。 R是步骤之间的关系集合,由一些控制结构组成: 顺序结构,依次执行算法的各步骤,如执行步骤A然后执行步骤B; 分支结构(if C then A else B),如果条件C成立,则执行步骤A,否则执行步骤B; 循环结构(while–do或for–do),当条件C为真,执行步骤A,或者重复执行步骤A n次; 子过程和递归结构:调用已有的算法; 算法有四个重要特性: 1.有穷性 2.确定性 3.可行性 4.功能性(输入、输出) 1.有穷性 对于任意一组合法输入值,在执行有穷步骤之后算法一定能结束。 2.确定性:在当前输入数据下,算法每步的任务是确切无二义性的,算法下一步骤执行的顺序也是确定的; 例如,“如果A3 则执行A+B,如果A6 则执行A-B”,对这样的算法步骤,当3A6时,算法的下一步骤就不确定了; 3.可行性 算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现。 例如,“如果任一大于4的偶数都可以表示为两个奇素数之和,则执行B”,由于判断执行B的条件很难确定,所以该步不具有可行性; 4.功能性(输入、输出特性):算法都是用作求解特定问题的,不解决问题的步骤序列不是算法,即对任意合法的0或多个输入,完成各步骤的任务,算法所产生的1或多个输出,就是对特定问题所求解的结果。 有的书称为算法的“输入”和“输出”特性。 二、算法描述 算法可以用多种方式来描述: 可以用自然语言描述,还可以用框图、 程序设计语言等来描述。 例:需要解决的特定的问题是: 在一个班级里查找是否有名叫“张三”的学生。 算法描述1:(自然语言描述) Step1: 将该班名册中的第一个学生作为当前学生; Step2: 将当前学生的姓名与“张三”进行比较: 如果相符,则输出“yes”,表示找到,算法结束;否则,执行Step3; Step3: 如果当前学生不是该班最后一个学生, 则取下一个学生作为当前学生,执行Step2; 否则,输出“no”,表示没有找到,算法结束。 功能:“在一个班级里查找是否有名叫“张三”的学生”,如果有,输出“yes”;如果没有,则输出“no”。 三个步

文档评论(0)

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

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

1亿VIP精品文档

相关文档