- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 算法与数据结构 主讲教师: 杨建军 教学重点 算法及其表示 常用算法结构分析 数据结构表示与描述 常用数据结构表示与描述(线性表、二叉树、图) 查找和排序 文件及其组织结构 4.1 算法 1.算法的定义 算法(Algorithm)是一系列解决问题的清晰指令,算法代表用系统的方法描述解决问题的策略机制。算法应该能够对一定规范的输入,在有限时间内获得所要求的输出。算法也可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者将算法看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。 4.1 算法 2.算法的特征 一个算法应该具有以下五个重要的特征: (1) 有穷性(Finity) 算法的有穷性是指算法必须能够在执行有限个步骤之后终止。 (2) 确定性(Unambiguousness) 算法的每一个步骤必须有确切的定义,语意不能存在二义性。 (3) 能行性(Realizability) 算法中执行的任何计算步都可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成。 (4) 输入(Input) 一个算法可以有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件。 (5)输出(Output) 一个算法必须有一个或多个输出,以反映对输入数据加工后的结果。没有任何输出的算法是毫无意义的。 4.1 算法的概念 3.算法的评价标准 对于一个特定的计算机问题,如果采用的数据结构不同,其设计的算法一般也不同。即使采用同一种数据结构,也可以使用不同的算法。那么,对于解决同一问题的各种算法,究竟选择哪一种算法比较合适,以及如何对已有的算法进行改进,从而设计出更适合数据结构的算法,这就是算法评价的问题。评价一个算法优劣的主要标准如下: (1) 正确性(Correctness)。算法的执行结果应当满足预先设定的功能和性能的要求,这是评价一个算法最基本的标准,也是最重要的标准。算法的正确性还应该包括对于输入、输出处理的明确而无歧义的描述。 (2) 可读性(Readability)。一个好的算法应当思路清晰、层次分明、简单明了、易读易懂。即使算法已转变成计算机可执行的代码,也需要考虑人能较好地阅读理解。一个可读性强的算法也有助于排除算法中隐藏的错误。 (3) 健壮性(Robustness)。一个算法应该具备很强的容错能力,当用户输入不合法的数据时,算法应当能做出适当的处理,而不至于引起严重的后果。健壮性要求算法应全面细致地考虑所有可能出现的异常情况和边界情况,并对这些情况做出妥善的处理,尽可能避免意外情况的发生。 (4) 运行时间(Running Time)。运行时间是指一个算法在计算机上运行所花费的总时间,它等于算法中所有语句执行时间的总和。如果对于同一个问题有多个算法可以选择,那么应尽可能选择执行时间较短的算法。一般情况下,算法的执行时间越短,说明算法的性能越好。 (5) 占用空间(Storage Space)。占用空间是指一个算法在计算机上存储所占用的存储空间,其中包括存储算法本身所占用的存储空间、算法输入及输出数据所占用的存储空间和算法在运行过程中临时所占用的存储空间。算法占用的存储空间是指算法在执行过程中所需要的最大存储空间,如果对于一个问题有多个算法可供选择,那么应尽可能选择存储量需求较低的算法。 4.1 算法 4 算法的表示 算法的表示可以采用自然语言、伪代码或流程图的方式进行描述。 早期的编程语言“ALGOL”就叫做算法语言。后来人们发现用编程语言描述算法过于严格,于是就用伪代码进行算法的设计,再用编程语言来实现这个设计。也就是说,“用伪代码写算法,用编程语言写程序”。 伪代码没有统一的标准,例如类PASCAL、类VB、类C之类的伪代码,也不尽相同。 4.3 查找与排序 4.3.2 排序 排序(Sort)是计算机内经常进行的一种操作,其目的是将一组同类型的记录序列调整为按照元素关键字有序的记录序列。例如将学生记录按学号排序,将课程记录按课程编码排序。 4.3 查找与排序 冒泡排序 冒泡排序的基本思路是:第一趟排序对全部记录R1,R2,…,Rn自左向右顺次两两比较,若Rk大于Rk+1则交换Rk和Rk+1( k=1, 2,…, n-1),第一趟排序完成后Rn成为序列中最大记录。第二趟排序对序列前n-1个记录采用同样的比较和交换方法,第二趟排序完成后Rn-1成为序列中仅比Rn小的次大的记录。第三趟排序对序列前n-2个记录采用同样处理方法。如此做下去,最多做n-1趟排序,整个序列就排序完成。 图4.33显示了在序列{45,21,13,1
您可能关注的文档
- 计算机组装、维护与维修教程 作者 刘瑞新 第14章 笔记本电脑.ppt
- 计算机组装与维修 作者 张兴明 第1章认识计算机组件.ppt
- 计算机组装与维修 作者 张兴明 第2章组装计算机硬件.ppt
- 计算机组装与维修 作者 张兴明 第3章 BIOS基本设置.ppt
- 计算机组装与维修 作者 张兴明 第4章硬盘与硬盘分区.ppt
- 计算机组装与维修 作者 张兴明 第5章安装操作系统.ppt
- 计算机组装与维修 作者 张兴明 第7章安装常用应用软件.ppt
- 计算机辅助工艺设计 capp系统设计 作者 赵良才 主编 目录.ppt
- 计算机辅助绘图与设计-AutoCAD 2006 第3版 作者 赵国增 主编 第八章.ppt
- 计算机辅助绘图与设计-AutoCAD 2006 第3版 作者 赵国增 主编 第二十章.ppt
- 计算机软件技术基础 作者 杨建军 第5章 多媒体与网络编程.ppt
- 计算机软件技术基础 作者 杨建军 第7章 操作系统.ppt
- 计算机软件技术基础 作者 杨建军 第9章 项目与实践.ppt
- 计算机软件技术基础 作者 杨建军 绪论1 计算机的基本概念.ppt
- 计算机软件技术基础及实验指导 作者 席晓慧 袁玲 第1章 软件工程.ppt
- 计算机软件技术基础及实验指导 作者 席晓慧 袁玲 第3章 程序设计语言.ppt
- 计算机软件技术基础及实验指导 作者 席晓慧 袁玲 第4章 数据结构.ppt
- 计算机软件技术基础及实验指导 作者 席晓慧 袁玲 第5章 数据库技术概述.ppt
- 计算机软件技术基础及实验指导 作者 席晓慧 袁玲 第6章 关系型数据库理论.ppt
- 计算机网络规划与设计 作者 吴学毅 第1章 计算机网络基础知识.ppt
文档评论(0)