计算机软件技术基础 教学课件 ppt 作者 杨建军 第4章 算法与数据结构

上传人:E**** 文档编号:89337925 上传时间:2019-05-23 格式:PPT 页数:9 大小:59KB
返回 下载 相关 举报
计算机软件技术基础 教学课件 ppt 作者 杨建军 第4章 算法与数据结构_第1页
第1页 / 共9页
计算机软件技术基础 教学课件 ppt 作者 杨建军 第4章 算法与数据结构_第2页
第2页 / 共9页
计算机软件技术基础 教学课件 ppt 作者 杨建军 第4章 算法与数据结构_第3页
第3页 / 共9页
计算机软件技术基础 教学课件 ppt 作者 杨建军 第4章 算法与数据结构_第4页
第4页 / 共9页
计算机软件技术基础 教学课件 ppt 作者 杨建军 第4章 算法与数据结构_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《计算机软件技术基础 教学课件 ppt 作者 杨建军 第4章 算法与数据结构》由会员分享,可在线阅读,更多相关《计算机软件技术基础 教学课件 ppt 作者 杨建军 第4章 算法与数据结构(9页珍藏版)》请在金锄头文库上搜索。

1、2019年5月23日,第4章 算法与数据结构,主讲教师: 杨建军,Talents come from diligence, and knowledge is gained by accumulation.,天才源于勤奋,知识源于积累 。,教学重点,算法及其表示 常用算法结构分析 数据结构表示与描述 常用数据结构表示与描述(线性表、二叉树、图) 查找和排序 文件及其组织结构,4.1 算法,1.算法的定义 算法(Algorithm)是一系列解决问题的清晰指令,算法代表用系统的方法描述解决问题的策略机制。算法应该能够对一定规范的输入,在有限时间内获得所要求的输出。算法也可以理解为有基本运算及规定的运

2、算顺序所构成的完整的解题步骤。或者将算法看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。,4.1 算法,2.算法的特征 一个算法应该具有以下五个重要的特征: (1) 有穷性(Finity) 算法的有穷性是指算法必须能够在执行有限个步骤之后终止。 (2) 确定性(Unambiguousness) 算法的每一个步骤必须有确切的定义,语意不能存在二义性。 (3) 能行性(Realizability) 算法中执行的任何计算步都可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成。 (4) 输入(Input) 一个算法可以有0个或多个输入,以刻画运算对象的

3、初始情况,所谓0个输入是指算法本身定出了初始条件。 (5)输出(Output) 一个算法必须有一个或多个输出,以反映对输入数据加工后的结果。没有任何输出的算法是毫无意义的。,4.1 算法的概念,3.算法的评价标准 对于一个特定的计算机问题,如果采用的数据结构不同,其设计的算法一般也不同。即使采用同一种数据结构,也可以使用不同的算法。那么,对于解决同一问题的各种算法,究竟选择哪一种算法比较合适,以及如何对已有的算法进行改进,从而设计出更适合数据结构的算法,这就是算法评价的问题。评价一个算法优劣的主要标准如下: (1) 正确性(Correctness)。算法的执行结果应当满足预先设定的功能和性能的

4、要求,这是评价一个算法最基本的标准,也是最重要的标准。算法的正确性还应该包括对于输入、输出处理的明确而无歧义的描述。 (2) 可读性(Readability)。一个好的算法应当思路清晰、层次分明、简单明了、易读易懂。即使算法已转变成计算机可执行的代码,也需要考虑人能较好地阅读理解。一个可读性强的算法也有助于排除算法中隐藏的错误。 (3) 健壮性(Robustness)。一个算法应该具备很强的容错能力,当用户输入不合法的数据时,算法应当能做出适当的处理,而不至于引起严重的后果。健壮性要求算法应全面细致地考虑所有可能出现的异常情况和边界情况,并对这些情况做出妥善的处理,尽可能避免意外情况的发生。

5、(4) 运行时间(Running Time)。运行时间是指一个算法在计算机上运行所花费的总时间,它等于算法中所有语句执行时间的总和。如果对于同一个问题有多个算法可以选择,那么应尽可能选择执行时间较短的算法。一般情况下,算法的执行时间越短,说明算法的性能越好。 (5) 占用空间(Storage Space)。占用空间是指一个算法在计算机上存储所占用的存储空间,其中包括存储算法本身所占用的存储空间、算法输入及输出数据所占用的存储空间和算法在运行过程中临时所占用的存储空间。算法占用的存储空间是指算法在执行过程中所需要的最大存储空间,如果对于一个问题有多个算法可供选择,那么应尽可能选择存储量需求较低的

6、算法。,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,18,21上应用冒泡排序的过程。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号