计算机软件技术基础及实验指导 教学课件 ppt 作者 席晓慧 袁玲 第2章 算法

上传人:E**** 文档编号:89340424 上传时间:2019-05-23 格式:PPT 页数:11 大小:135.50KB
返回 下载 相关 举报
计算机软件技术基础及实验指导 教学课件 ppt 作者 席晓慧 袁玲 第2章 算法_第1页
第1页 / 共11页
计算机软件技术基础及实验指导 教学课件 ppt 作者 席晓慧 袁玲 第2章 算法_第2页
第2页 / 共11页
计算机软件技术基础及实验指导 教学课件 ppt 作者 席晓慧 袁玲 第2章 算法_第3页
第3页 / 共11页
计算机软件技术基础及实验指导 教学课件 ppt 作者 席晓慧 袁玲 第2章 算法_第4页
第4页 / 共11页
计算机软件技术基础及实验指导 教学课件 ppt 作者 席晓慧 袁玲 第2章 算法_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《计算机软件技术基础及实验指导 教学课件 ppt 作者 席晓慧 袁玲 第2章 算法》由会员分享,可在线阅读,更多相关《计算机软件技术基础及实验指导 教学课件 ppt 作者 席晓慧 袁玲 第2章 算法(11页珍藏版)》请在金锄头文库上搜索。

1、第2章 算法,2.1 算法的概念,2.1.1 算法的基本概念 (1)有穷性 算法中执行的步骤总是有限次数的,不能无休止地执行下去。 (2)确定性 算法中的每一步操作的内容和顺序必须含义确切,不能有二义性。 (3)可行性 算法中的每一步操作都必须是可实现的,也就是说算法中的每一步都能通过所选用的计算机语言中的语句来实现,这称为有效性。 (4)输入 一个算法中有零个或多个输入。这些输入数据应在算法操作前提供。 (5)输出 一个算法中有一个或多个输出。算法的目的是用来解决一个给定的问题,因此,它应向人们提供产生的结果,否则,就没有意义了。,2.2 算法的描述,自然语言 计算机程序设计语言 传统流程图

2、 N-S流程图 伪代码语言,2.3 算法的评估,2.3.1 算法设计的要求 1正确性 2可读性 3效率和低存储量要求 4简单性,2.3.2 算法效率的度量,1时间度量 算法的执行时间需要依据该算法编制的程序在计算机上运行时所消耗的时间来度量。 它大致等于计算机执行一种简单操作(如赋值、比较等)所需的平均时间与算法中进行简单操作的次数的乘积。 通常把算法中进行简单操作的次数的多少称为算法的时间复杂度,它是一个算法执行时间的相对度量。,1)时间复杂度的概念: 若所需解决问题的数据规模(数据量)为n,那么算法的时间复杂度就是数据规模n的一个函数f(n),假定时间复杂度记作T(n),则: T (n)

3、= O (f (n),例如,求n个整数的平均值,算法如下: int ave (int a,int n) int s, i; s=0; /* 1 */ for (i=0; in; i+) s=s+ai; /* 2 */ s=s/n; /* 3 */ return s; /* 4 */ 计算机执行这个算法时语句1、3和4各执行了一次,将语句2部分分解为: i=0; /* 1次 */ while (in) /* n次 */ s=s+ai; /* n次 */ i+; /* n次 */ 所以算法的时间复杂度为3n+4,记作: T (n) = 3n+4, x=x+1; for (i=1; i=n; i+)

4、 x=x+1; for (i=1; i=n; i+) for (j=1; j=n; j+) x=x+1; 以上三个程序段的时间复杂度分别为O(1)、O(n)、O(n2),分别称为常量阶、线性阶和平方阶。 算法的时间复杂度随问题规模变化的关系可表示为: O (log2n) O (n) O (n lon2n) O (n2) O (2n),2)时间复杂度的估算方法: 通常时间复杂度的估算方法有两种:平均运算量和最坏的情况。 平均运算量:设输入某一类数据的概率计为pi,该类数据的运算量计为ci,则算法的平均运算量可表示为: ASL=pici 例2-2:顺序查找,从一给定的数组a中查找某一特殊的数x的算

5、法为: int searchlist (int a , int n, int x) i=0; while (in 算法的时间复杂度为O(n)。,例2-3:用冒泡法对数组a中的n个元素进行排序。 void sort (int a , int n) int i, j, t, CHANGE=1; i=0; while (iaj+1) t=aj; aj=aj+1; aj+1=t; CHANGE=1; /*交换两个相临的数*/ i+; 假设a中数据出现n!种排列情况的概率相等,则平均复杂度不会超过n(n1)/2。即该算法的时间复杂度为O(n2)。,2空间度量 一个算法在计算机存储器上所占用的存储空间,包括三个方面 存储算法本身所占用的存储空间 算法中的输入输出数据所占用的存储空间 算法在运行过程中临时占用的存储空间 算法在执行过程中临时占用的存储空间被定义为算法的空间复杂度 算法的空间复杂度包括局部变量所占用的存储空间和系统为实现递归(如果采用递归算法)所占用的堆栈这两个部分。算法的空间复杂度也用数量级的形式给出。 S (n) = O (f (n) 其中,n为问题的规模。,

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

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

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