[计算机软件及应用]算法及其描述

[计算机软件及应用]算法及其描述

ID:40005268

大小:427.50 KB

页数:34页

时间:2019-07-17

[计算机软件及应用]算法及其描述_第1页
[计算机软件及应用]算法及其描述_第2页
[计算机软件及应用]算法及其描述_第3页
[计算机软件及应用]算法及其描述_第4页
[计算机软件及应用]算法及其描述_第5页
资源描述:

《[计算机软件及应用]算法及其描述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机常用算法与程序设计案例教程杨克昌请用PowerPoint2003播放课堂讲授:学时安排:36(讲授)+18(上机)(可根据实际教学计划进行调整)各常用算法的概念与设计要点。重点讲授应用算法设计求解基本的典型案例,并通过相关程序,引导设计变通。在基本案例引导下自学相关联案例求解。小组讨论与基本案例相关的拓展与引申案例求解,为“课程设计”作准备。上机实践:学习建议:学会归纳、总结和提炼;自觉调整学习状态:培养案例求解兴趣自觉完成布置的作业加深对算法应用的理解善于变通、拓展与改进注重算法设计,提高解决实际案例的能力。上机环境:VC++

2、6.0上机通过每章指定的案例求解程序与习题按要求填写实验报告教学要求了解算法概念、算法特征及算法的描述建立算法的复杂性概念掌握结构化程序设计的基本方法本章重点应用c语言描述算法掌握算法时间复杂度分析第1章算法与程序设计概述1.1算法及其描述算法是程序设计的基础,是计算机科学的核心。1.1.1算法定义算法是计算机解决问题的过程,是解决某一问题的运算序列。或者说算法是问题求解过程的运算描述。当面临某一问题时,需要找到用计算机解决这个问题的方法与步骤,算法就是解决这个问题的方法与步骤的描述。1.算法的三要素算法由操作、控制结构与数据结构

3、三者组成。(1)操作:算术运算,关系运算,逻辑运算;输入、输出、赋值等操作。(2)控制结构:顺序结构,选择结构,循环结构,模块调用。(3)数据结构:数据之间的逻辑关系。2.算法的基本特征一个算法由有限条可完全机械地执行的、有确定结果的指令组成,具有以下特性:(1)确定性(2)可行性(3)有穷性(4)算法有零个或多个输入(5)算法有一个或多个输出1.1.2算法描述(1)一个问题可以设计不同的算法来求解;同一个算法可以采用不同的形式来表述。(2)描述算法可以有:自然语言方式、流程图方式、伪代码方式、计算机语言表示方式与表格方式等。(3)当

4、一个算法使用计算机程序设计语言描述时,就是程序。本书采用C语言与自然语言相结合来描述算法。例1-1求两个整数a,b的最大公约数的欧几里德算法(1)数a除以b得余数r;若r=0,则b为所求的最大公约数。(2)若r≠0,以b为a,r为b,继续(1).欧几里德算法具体描述如下:input(a,b);//输入的简略表示r=a%b;while(r!=0)//实施辗转相除{a=b;b=r;r=a%b;}print(b);//输出的简略表示例1-2由n个1组成的整数能被2011整除,求n至少为多大?(1)试模拟整数竖式除法:可以证明,n是存在的,且

5、不大于2011,因而以上竖式运算总会停止。当除运算的余数为“0”时,数一数被除数中有多少个“1”即可。设整数竖式除法每次试商的被除数为a,除数为2011,每次试商的余数为c。循环以余数c≠0作为循环条件。循环外赋初值:c=1111,n=4或c=111,n=3等等。设置竖式除法模拟循环,循环中被除数a=c*10+1,试商余数c=a%2011。若余数c=0,结束循环,输出结果;否则,计算a=c*10+1为下一轮运算的被除数,继续试商。每商一位,统计被除数中“1”的个数的变量n增1。(2)竖式除法模拟描述c=1111;n=4;//变量c与n

6、赋初值while(c!=0)//模拟竖式除法{a=c*10+1;c=a%2011;n=n+1;//每试商一位n增1}print(n);//输出的简略表示1.2算法的复杂性分析算法的复杂性越高,所需的计算机资源越多。最重要的计算机资源是时间资源与空间资源。需要计算机时间资源的量称为时间复杂度,需要计算机空间资源的量称为空间复杂度。时间复杂度与空间复杂度集中反映算法的效率。1.2.1时间复杂度要想充分理解算法并有效地应用算法求解实际案例,关键是对算法的分析。通常我们可以利用实验对比方法、数学方法来分析算法。实验对比分析很简单,两个算法相互

7、比较求解时间。数学方法能在严密的逻辑推理基础上判断算法的优劣。在算法分析中,我们往往采用能近似表达性能的方法来展示某个算法的性能指标。一个算法的时间复杂度是指算法运行所需的时间。 一个算法的运行时间取决于算法所需执行的语句(运算)的多少。 算法的时间复杂度通常用该算法执行的总语句(运算)的数量级决定。一条语句的数量级即执行它的频数,一个算法的数量级是指它所有语句执行频数之和。在分析算法时,隐藏细节的数学表示方法为大写字母“O”记法,它可以帮助我们简化算法复杂度计算的许多细节,提取主要成分。算法的执行频数的数量级直接决定算法的时间复杂度

8、。2个语句各执行1次,共执行2次。时间复杂度为O(1)(1)x=x+1;s=s+x;例1-3试计算下面三个程序段的时间复杂度(2)for(k=1;k<=n;k++){x=x+y;y=x+y;s=x+y;}“k=1”执行1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。