- 1、本文档共77页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构与算法(吴跃)ch1
例如,“如果任一大于4的偶数都可以表示为两个奇素数之和,则执行B”,由于判断执行B的条件很难确定,所以该步不具有可行性; 算法步骤的粒度可以是很细的,细到基本语句、基本步骤,也可以是很粗的,但是可以通过逐步细化,最后细到可以实现,这就是算法设计中的逐步细化过程。 抽象数据类型与数据结构的关联 抽象数据类型一般包含数据元素、数据元素之间关系及操作三要素(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”。 三个步骤组成:其中有一个从Step3到Step2的循环,但是经过有限步执行后,算法都会结束。 分析:当第一个学生就是张三时,算法只执行了Step1和Step2各一次就结束,算法执行的步骤最少;当最后一个学生是“张三”或该班没有“张三”时,算法执行的步骤最多。 算法描述2:(框图描述) 将第一个作为当前学生 结束 是最后一个? 输出yes 输出no 取下一个作为当前学生 y y n n 开始 是张三? 三、算法分析 好的算法应该具备以下特性: 正确性:正确性是对算法能否正确求解问题的评价,是首要和最基本的特性; 可读性:可读性是对算法描述的思路、层次的评价。好的算法应该是思路清晰、层次分明、阅读和修改容易; 健壮性:健壮性是对算法在异常情况下处理能力的评价。好的算法在出现异常或非法数据时,在操作不当时,算法都能作适当处理; 高效性:算法的效率是对求解同样问题的不同算法所占用的时间或空间的评价。好的算法应该是高效的,即求解问题所占用存储空间少,执行时间短; 第1章 绪论 算法效率——用依据该算法编制的程序在计算机上执行所消耗的时间来度量 1.事后统计——利用计算机内记时功能,不同算法的程序可以用一组或多组相同的统计数据区分 缺点:?必须先运行依据算法
您可能关注的文档
- 数学五上说教材-蔡玉凤.ppt
- 数学二年级下册《租船》讲课1.ppt
- 数学八年级上册一次函数导学案1.doc
- 数学实践与认识5.ppt
- 数学四年级下册四则运算整理复习课件.ppt
- 数学六年级上西师大版2.3圆的面积课件11.ppt
- 数学分析 第五章 导数4-5.ppt
- 数学建模 液滴高度问题.doc
- 数学建模 创意平板折叠桌.doc
- 数学实验 ppt入门.ppt
- 2025年公职人员考试时事政治热点题库及完整答案(真题).docx
- 2025年公安局辅警招聘考试试题库(含答案).docx
- 2025年公共基础知识考试试题及一套完整答案详解.docx
- 2025年公安局警务辅助人员考试招聘笔试试题(含答案).docx
- 2025年公共基础知识考试题库及答案详解(名校卷).docx
- 2025年公务员考试(时事热点)经典试题及答案汇总(海南).docx
- 2025年公务员考试题库大全(附答案).docx
- 2025年公务员考试(时事热点)经典试题及答案汇总(鸡西).docx
- 2025年公安局警务辅助人员招聘考试笔试试题(附答案).docx
- 2025年公共基础知识试题库精选答案详解.docx
最近下载
- 申请英国签证在职证明中英文版.docx VIP
- L5 BladeEditor模块功能介绍.pdf VIP
- 工业建筑设计规范.docx VIP
- 《深入探讨教育公平问题》课件.ppt VIP
- 水闸工程管理设计规范(SL170-96).pdf VIP
- 上海市徐汇区2022-2023学年八年级下学期期末数学试题.docx VIP
- ISO 17637-2016 Non-destructive testing of welds – Visual testing of fusion-welded joints-en-中文版目视无损检测.pdf VIP
- 海底捞《新员工岗前培训手册》.pdf VIP
- 上海市徐汇区2024-2025学年下学期八年级期末考试数学试题(含部分答案).pdf VIP
- 化工园区安环一体化管理平台建设方案.ppt VIP
文档评论(0)