1、算法及其实现,思考:,一个农夫带着一条狼、一头山羊和一篮蔬菜要过河。当他来到渡口时发现过河的小船除了能装下自己之外,只能再带1样东西过河。这使他有点犯愁了,因为如果农夫不在场的情况下,狼会吃羊,羊会吃蔬菜。请同学们帮助农夫解决安全过河问题。,解题方法一,步骤一:农夫先带着羊乘船过河。,步骤二:农夫回来后再将狼乘船过河。,步骤三:将狼渡完河时,把羊再带回来。,步骤四:把羊放下将蔬菜乘船过河,步骤五:最后农夫回来再带着羊乘船过河。,解题方法二,步骤一:农夫先带着羊乘船过河。,步骤二:农夫回来后再将蔬菜乘船过河。,步骤三:将蔬菜渡完河时,把羊再带回来。,步骤四:把羊放下将狼乘船过河,步骤五:最后农夫
2、回来再带着羊乘船过河。,实践:,神父过河,什么是算法?,所谓算法,就是解题方法的精确描述。是指在使用计算机解题前,需要将解题方法转换成一系列具体的在计算机上可执行的步骤,这些步骤能够清楚的反映解题方法一步步“怎么做”的过程,这个过程就是通常所说的算法。,泡 茶,方法甲,方法乙,方法丙,洗开水壶,灌凉水,洗茶壶,洗茶杯,拿茶叶,泡茶喝,洗开水壶,洗茶壶,洗茶杯,拿茶叶,灌凉水,烧开水,泡茶喝,拿茶叶,洗茶壶,洗茶杯,泡茶喝,烧开水,洗开水壶,洗开水壶,洗开水壶,对同一个问题,有时可以有不同的解题方法和步骤。有的方法只需要较少的步骤,而有些方法则可能需要较多的步骤。一般情况下,尽可能采用简单省时的
3、和步骤少的方法去解决问题。因此,为了有效地解决问题,不仅需要保证算法正确,还要考虑算法的质量,这就要求人们设计或选择合适的算法。,结 论,算法及其特点: 所谓“算法”,就是解题方法的精确描述。算法描述的是一种有穷的动作序列,即算法是由有限个步骤所组成的,1、有穷性: 一个算法必须保证它的执行步骤是有限的,即它是能终止的。,2、确定性。 算法中的每个步骤必须有确切的含义,而不应当是含糊的,模棱两可的。,3、能行性 算法中的每个步骤都要足够简单,是实际能做的,而且能在有限的时间内完成。,4、有0个或者多个输入,5、由一个或多个输出。,算法的表示,一、使用自然语言描述算法,二、使用流程图描述算法,三
4、、使用伪代码(计算机语言)描述算法,1、自然语言 我们可以用汉语,加上一些必要的数学符号来描述算法。,实例,输入三角形的三条边长,判断它能否构成一个三角形,1、输入三边边长a,b,c; 2、如果a+bc且b+ca且c+ab, 则dtrue;否则dfalse; 3、输出d的值,思考题,输入一个整数,将该数反向输出。,流程图(flowchart),流程图中常用的一些符号,实例:学校上体育课,一般在操场上课,遇到下雪和下雨天,改到室内上课。,流程图表示,开始,准备上体育课,雨天或雪天?,在操场上课,在室内上课,结束,Y,N,伪代码: 伪代码使用某些程序设计语言中的控制结构,来描述算法中各步骤的执行次序和模式。使用自然语言、数学符号或者其它符号,来表示计算步骤要完成的处理或者需要涉及的数据。,IF(未下雨或下雪)THEN(在操场上课) ELSE(在室内上课),算法的执行流程,1、顺序模式,输出:n2,输入n整数,2、选择模式,情况e为真,step1,step2,Y,N,3 循环模式,情况e为真,step1,Y,N,计算:,实例,kn,ss+1/k,kk+1,输入:n正整数,s0, k1,Y,N,输出s,