1、算法与算法描述,认识算法 算法特征 算法描述的方法 三种算法描述优缺点比较,主讲人 闫超,算法与算法描述,认识算法辗转相除法算法的概念,算法与算法描述,欧几里得是古代最有名望的学者之一,古希腊数学家,几何学的鼻祖,著有几何原本。在几何原本中,欧几里得阐述了关于求两个整数的最大数公约数的过程。这就是著名的欧几里得算法辗转相除法。 设给定两个正整数为m和n,求它们的最大公约数的步骤为: (1)以m除以n,令所得余数为r。 (2)若r=0,则输出结果n,算法结束;否则继续步骤(3)。 (3)令m=n,n=r,并返回步骤(1)继续执行。,算法与算法描述,算法概念数学课上,算法是指在有限步骤内求解某一问
2、题所使用的一组定义明确的规则。信息技术课上,算法是指用计算机求解某一问题的方法,是能机械执行的动作或指令的有穷集合。,算法与算法描述,算法特征算法特征说明算法特征举例,算法与算法描述,算法特征说明输入。一个算法有零个或多个输入,以刻画运算对象的初始情况,如,欧几里得算法中,有两个输入m和n。 确定性。算法的每一步必须要有确定的定义,即算法中所有有待执行的动作必须严格而不含混的进行规定,不能有歧义性。如,在欧几里得算法中,步骤(1)明确规定了“以m除以n”,而不能有“以m除以n”或者“以n除以m”这类有两种可能性的规定。,算法与算法描述,算法特征说明有穷性。一个算法在执行有穷步骤后必须结束。也就
3、是说一个算法所包含的步骤是有限的。在欧几里得算法中,由于m和n都是正整数,在步骤(1)后,r比小于n,若r不等于0,下一次执行步骤(1),n值已经减少,而正整数的递降序列最后必将终止。 输出。算法有一个或多个输出,即与输入有某个特定关系的量,就是算法的最终结果。如,在欧几里得算法中,只有步骤(2)中的n。,算法与算法描述,算法特征说明能行性。算法中的运算和操作是能够精确进行的。算法执行者不需要知道算法的确切含义就可以根据算法的每一步骤要求进行操作。,算法与算法描述,算法描述的方法自然语言描述算法流程图描述算法伪代码描述算法,算法与算法描述,算法描述的方法之自然语言描述自然语言就是人们日常所用的
4、语言,用来描述问题求解的思想方法实例:鸡兔同笼问题 实践设计一个算法,求出100以内能被3整除的所有正整数。,算法与算法描述,算法描述的方法之流程图在数学课上,使用流程框图来描述算法。在程序框图中流程图是描述算法的主要工具。 实例:鸡兔同笼问题: 实践:设计一个算法,求出100以内能被3整除的所有正整数。,算法与算法描述,算法描述的方法之伪代码伪代码就是介于自然语言和计算机语言之间的文字和符号来描述算法的工具。不使用图形符号。 实例讲解:辗转相除法,算法与算法描述,三种算法描述优缺点比较 自然语言算法描述流程图算法描述伪代码算法描述,算法与算法描述,自然语言描述算法优缺点 优点:描述的算法通俗
5、易懂 缺点:自然语言的歧义性,导致算法执行的不确定性。 自然语言太长,导致用自然语言描述的算法也太长。 自然语言是按照步骤的标号顺序执行,因此,当一个 算法循 环和分支较多时很难清晰体现出来;自然语言表示的算法不便翻译成计算机程序设计言。,算法与算法描述,流程图描述算法优缺点优点:流程描述清晰简洁,易于表达结构。不依赖任何具体的计算机和计算机程序设计语言,从而有利于不同环境的程序设计。 缺点:初学者不容易理解这些框架图之间的逻辑联系。,算法与算法描述,伪代码描述算法优缺点 优点:书写方便,格式紧凑,易于理解,便于向程序设计语言过度。 缺点:由于程序设计语言的种类众多,伪代码的语句不容易规范,有时会产生误解。,谢谢! 请批评指正!,