第2章 程序的灵魂算法精选文档.ppt
《第2章 程序的灵魂算法精选文档.ppt》由会员分享,可在线阅读,更多相关《第2章 程序的灵魂算法精选文档.ppt(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 程序的灵魂算法本讲稿第一页,共二十一页随着计算机理论的发展,程序不但要和数据结构、算法有关,还与随着计算机理论的发展,程序不但要和数据结构、算法有关,还与程序设计的方法、语言的工具和环境有关,因此又可以表示成:程序设计的方法、语言的工具和环境有关,因此又可以表示成:程序程序=数据结构数据结构+算法算法+程序设计的方法程序设计的方法+语言的工具和环境,下语言的工具和环境,下面介绍算法的基本概念。面介绍算法的基本概念。本讲稿第二页,共二十一页2.1 2.1 算法的概念算法的概念例例1 1:去火车站的方法:去火车站的方法例例2 2:求:求1 1100100的和的和例例3 3:祖冲之的割圆术求
2、:祖冲之的割圆术求 例例4 4:求:求1 1100100内的素数(筛法)内的素数(筛法)算法的实质是解决给定问题的有限操作步骤的描述,它指明算法的实质是解决给定问题的有限操作步骤的描述,它指明了其问题的解答过程。因些可给算法如下定义:了其问题的解答过程。因些可给算法如下定义:算法是一个过程,由一套清楚的规则组成的,这些规则指定了操作顺算法是一个过程,由一套清楚的规则组成的,这些规则指定了操作顺序,以便在有限步骤内得到特定问题的解。序,以便在有限步骤内得到特定问题的解。本讲稿第三页,共二十一页2.2 2.2 简单算法的举例简单算法的举例例例1 1:求:求1 1100100的和的和步骤步骤1 1:
3、1=i,0=s1=i,0=s步骤步骤2 2:i+s=si+s=s步骤步骤3 3:i+1=ii+1=i步骤步骤4 4:如果:如果i100 i100 返回步骤返回步骤2 2,否则结束,否则结束本讲稿第四页,共二十一页例例2 2:判断任何正整数是否是素数:判断任何正整数是否是素数步骤步骤1 1:输入正整数:输入正整数n(n2)n(n2)步骤步骤2 2:如果:如果n1,n1,输出不是素数,转步骤输出不是素数,转步骤8 8步骤步骤3 3:2=i 2=i 步骤步骤4 4:如果:如果in,ii i+1=i,转步骤,转步骤4 4步骤步骤7 7:输出:输出n n步骤步骤8 8:结束:结束本讲稿第五页,共二十一页
4、例例3 3:欧几里德算法(求二个整数的最大公约数):欧几里德算法(求二个整数的最大公约数)步骤步骤1 1:输入二个正整数:输入二个正整数m,nm,n步骤步骤2 2:如果:如果mn,mn,则则m,nm,n的值交换的值交换步骤步骤3 3:m mod n=rm mod n=r步骤步骤4 4:如果:如果r=0 r=0 则则 转步骤转步骤6 6,否则执行步骤,否则执行步骤5 5步骤步骤5 5:n=m r=n n=m r=n 转步骤转步骤3 3步骤步骤6 6:输出:输出n,n,结束结束本讲稿第六页,共二十一页2.3 2.3 算法的特性算法的特性一个算法应具有以下特点:一个算法应具有以下特点:1.1.有穷性
5、有穷性有穷性有穷性 由于算法必须在有限步骤内得到问题的解,因些算法的操场作步骤由于算法必须在有限步骤内得到问题的解,因些算法的操场作步骤必要须是有限的,如用圆规和直尺不能将一个任意角三等分,其实是在必要须是有限的,如用圆规和直尺不能将一个任意角三等分,其实是在有限步骤内不能三等分。有限步骤内不能三等分。2.2.确定性确定性确定性确定性 算法的每一步骤都应该是确定的,不能是模糊不清的,譬如你不算法的每一步骤都应该是确定的,不能是模糊不清的,譬如你不能将烧菜的算法写成放盐,烧一会儿等。这样就不能确定少许和一会能将烧菜的算法写成放盐,烧一会儿等。这样就不能确定少许和一会儿到底是多少。欧几里德算法儿到
6、底是多少。欧几里德算法本讲稿第七页,共二十一页3.3.数据的输入数据的输入数据的输入数据的输入 由于算法通常是对数据的操作,因此需输入对那些数据进行由于算法通常是对数据的操作,因此需输入对那些数据进行操作,如求素数中的操作,如求素数中的n,n,欧几里德算法中的欧几里德算法中的mm、n n二个正整数,也二个正整数,也可能算法中没有显式的输入如求可能算法中没有显式的输入如求1 1100100的和、祖冲之的割圆术的和、祖冲之的割圆术求求。4.4.数据的输出数据的输出数据的输出数据的输出 由于算法是给出特定问题的求解,因此当获得解时应该输出,如欧由于算法是给出特定问题的求解,因此当获得解时应该输出,如
7、欧几里德算法中当几里德算法中当r r为为0 0时时n n的值,即为最大公约数的值,即为最大公约数5.5.有效性有效性有效性有效性 有效性又称可行性,如一个去火车站的算法要去杀一个人,有效性又称可行性,如一个去火车站的算法要去杀一个人,做脑外科手术,只有切菜刀,在除法中要除以做脑外科手术,只有切菜刀,在除法中要除以0 0都不具有有效都不具有有效性。性。本讲稿第八页,共二十一页2.4 2.4 算法的表示算法的表示 2.4.12.4.1 用自然语言表示算法用自然语言表示算法用自然语言表示算法用自然语言表示算法 虽然可以用人们使用的自然语言来描述算法,但自然语言虽然可以用人们使用的自然语言来描述算法,
8、但自然语言的种类繁多,而且其语句上下文有关系的,如:的种类繁多,而且其语句上下文有关系的,如:“你你C C语言考得语言考得怎么样?怎么样?”中的你不能确定究竟指哪一个同学。在程序设计中很少使用中的你不能确定究竟指哪一个同学。在程序设计中很少使用这种方法来描述算法。这种方法来描述算法。2.4.2 2.4.2 用流程图表示算法用流程图表示算法用流程图表示算法用流程图表示算法 流程图是用一些图框表各种操作。用;这种图形表示算法流程图是用一些图框表各种操作。用;这种图形表示算法比效直观,相对容易理解。比效直观,相对容易理解。本讲稿第九页,共二十一页本讲稿第十页,共二十一页例例1 1:画出欧几里德算法的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 程序的灵魂算法精选文档 程序 灵魂 算法 精选 文档
限制150内