算法与程序设计概述概要课件.ppt
《算法与程序设计概述概要课件.ppt》由会员分享,可在线阅读,更多相关《算法与程序设计概述概要课件.ppt(29页珍藏版)》请在三一办公上搜索。
1、常用算法与程序设计,1,第 1 章,算法与程序设计概述,高等教育“十一五”国家级规划教材计算机常用算法与程序设计教程配套课件,常用算法与程序设计,2,主要内容,1.1 算法与算法描述 算法定义 算法描述1.2 算法复杂性分析 时间复杂度 空间复杂度1.3 程序设计简介 算法与程序 结构化程序设计,常用算法与程序设计,3,1.1 算法与算法描述,1.1.1 算法算法是程序设计的基础,是计算机科学的核心。算法是指解决某一问题的运算序列。或者说算法是问题求解过程的运算描述,一个算法由有限条可完全机械地执行的、有确定结果的指令组成。,常用算法与程序设计,4,3. 算法是满足下列特性的指令序列: (1)
2、 确定性 组成算法的每条指令是清晰的,无歧义的。 (2) 可行性 算法中的运算是能够实现的基本运算,每一种运算可在有限的时间内完成。 (3) 有穷性 算法中每一条指令的执行次数有限,执行每条指令的时间有限。 (4) 输入 一个算法有零个或多个输入。 (5) 输出 一个算法至少产生一个量作为输出。,常用算法与程序设计,5,4. 选择算法的标准,通常求解一个问题可能会有多种算法可供选择,选择的主要标准是算法的正确性和可靠性。其次是算法所需要的存储空间少和执行时间短等。 在实际工程中我们遇到许多高难度计算问题,有的问题在巨型计算机上用普通算法来求解可能要数个月的时间,而且很难找到精确解。但用一个好的
3、算法,即使在普通的个人电脑上,可能只需数秒钟就可以求得解答 。,常用算法与程序设计,6,1.1.2 算法描述,1. 描述算法的方式 算法是问题的程序化解决方案。一个问题可以设计不同的算法来求解,同一个算法可以采用不同的形式来表述。 描述算法可以有多种方式,如自然语言方式、流程图方式、伪代码方式、计算机语言表示方式与表格方式等。 当一个算法使用计算机程序设计语言描述时,就是程序。 本书采用C语言与自然自然语言相结合来描述算法。,常用算法与程序设计,7,2. 算法描述举例 【例1.1】 求两个整数a,b(ab)的最大公约数的欧几里德算法: (1) a除以b得余数r;若r=0,则b为所求的最大公约数
4、。 (2) 若r0,以b为a,r为b,继续(1)。注意到任两整数总存在最大公约数,上述辗转相除过程中余数逐步变小,相除过程总会结束。欧几里德算法又称为“辗转相除”法,具体描述如下:,常用算法与程序设计,8,输入正整数a,b;if(ab */r=a%b;while(r!=0) a=b;b=r; /* 实施辗转相除 */ r=a%b; printf(最大公约数b);,常用算法与程序设计,9,算法复杂性的高低体现运行该算法所需计算机资源的多少。算法的复杂性越高,所需的计算机资源越多;反之,算法的复杂性越低,所需的计算机资源越少。计算机资源,最重要的是时间资源与空间资源。需要计算机时间资源的量称为时间
5、复杂度,需要计算机空间资源的量称为空间复杂度。算法分析是指对算法的执行时间与所需空间的估算,定量给出运行算法所需的时间数量级与空间数量级。,1.2 算法复杂性分析,常用算法与程序设计,10,在分析算法时,隐藏细节的数学表示法成为大写O记法一个算法的时间复杂度是指算法运行所需的时间。一个算法的运行时间取决于算法所需执行的语句(运算)的多少。算法的时间复杂度通常用该算法执行的总的语句(运算)的数量级决定。就算法分析而言,一条语句的数量级即执行它的频数,一个算法的数量级是指它所有语句执行频数之和。,1.2.1 时间复杂度,常用算法与程序设计,11,1. 时间复杂度定义,定义: 对于一个数量级为的 算
6、法,如果存在两个正常数c和m,对所有的nm,有 则记作 ,称该算法具有 用 的运行时间,是指当n足够大时,该算法的实际运行时间不会超过的某个常数倍时间。,常用算法与程序设计,12,2. 例如程序段: for(k=1;k=n;k+) x=x+y; y=x+y; s=x+y; 每个赋值语句执行频数为n,该算法的数量级为3n; 其计算时间即时间复杂度为O(n)。,常用算法与程序设计,13,3. 例如程序段:for(t=1,k=1;k=n;k+) t=t*2; for(j=1;j=t;j+) s=s+j; 内循环赋值语句执行频数 算法的时间复杂度为O( )。,常用算法与程序设计,14,4. 算法时间关
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 程序设计 概述 概要 课件

链接地址:https://www.31ppt.com/p-1830389.html