算法的概念及描述课件.ppt
算法的概念及描述算法的概念及描述 许朝晖岳阳市第十五中学认识算法:认识算法:渡河问题渡河问题问题:两个大人和两个小孩一起渡河。渡口只有一只小船,一次只能渡过一个大人或两个小孩,他们四人都会划船,但都不会游泳。他们怎样都过河去?算法的概念算法的概念有穷性一个算法在执行有穷步之后必须结束;可行性算法中有待执行的运算和操作必须是相当基本的。(运算和操作能精确地执行)确定性算法的每一个步骤必须要确切地定义;有输入一个算法有零个或多个输入;有输出算法有一个或多个输出;广义:广义:“算法”指的是解决问题或完成任务的一系列步骤。计算机科学领域:计算机科学领域:“算法”指的是用计算机解决问题的步骤,是为了解决问题而需要让计算机有序执行的、无歧义的、有限步骤的集合。算法的要素:数据、运算及控制转移算法的要素:数据、运算及控制转移算法的描述算法的描述用自然语言描述算法用流程图描述算法用伪代码描述算法用计算机程序设计语言描述算法 算法的描述用自然语言表达 用自然语言表达算法,就是把算法的各个步骤,依次用人们熟悉的自然语言表示出来。优点:容易理解缺点:书写较烦、不确定性、对复杂的问题难以表达准确、不能被计算机识别和执行过河的方案过河的方案:第一步:人和羊过河,人返回,留下羊;第一步:人和羊过河,人返回,留下羊;第二步:人和狼过河,人和羊返回,留下狼;第二步:人和狼过河,人和羊返回,留下狼;第三步:人和菜过河,人返回,留下菜;第三步:人和菜过河,人返回,留下菜;第四步:人和羊过河第四步:人和羊过河合作探究步步骤骤i i的的值值SumSum的值的值条件判断条件判断i6i6SumSum加加i i1101 55条件成立条件成立12212 55条件成立条件成立33333535条件成立条件成立64464545条件成立条件成立1055105555条件成立条件成立1566156565条件不成条件不成立立结束结束算法算法 以小组为单位,用自然语言描述求解以小组为单位,用自然语言描述求解sum=1+2+3+4+5sum=1+2+3+4+5问题的算法问题的算法1、设、设i的值为的值为1;2、设、设sum的值为的值为0;3、如果、如果i5执行执行4,否则,否则转去执行转去执行7;4、计算、计算sum加加i并将结果并将结果赋给赋给sum;5、计算、计算i加加1并将结果赋并将结果赋给给i;6、转去执行、转去执行3;7、输出、输出sum的值并结束的值并结束算法。算法。程序框名称功能开始/结束算法的开始和结束输入/输出输入和输出信息处理计算与赋值判断条件判断流程线算法中的流向连接圈表示算法流向出口或入口连接点常用的“流程图”所用的基本符号 用流程图描述求解sum=1+2+3+4+5问题的算法开始i1sum0i5sumsum+ii i+1输出sum结束NY1、设、设i的值为的值为1;2、设、设sum的值为的值为0;3、如果、如果i5执行执行4,否则,否则转去执行转去执行7;4、计算、计算sum加加i并将结果并将结果赋给赋给sum;5、计算、计算i加加1并将结果赋并将结果赋给给i;6、转去执行、转去执行3;7、输出、输出sum的值并结束的值并结束算法。算法。合作探究合作探究以小组为单位,用流程图表示:工人每天工作8小时,每小时9元,超过8小时的每小时增加15%的加班费,计算工人每天的应发的日工资。YN 开始X8小时?Y=X*9(X-8)*9*0.15 Y=X*9输出日工资Y输入工作小时 X 结束 优点:直观、形象优点:直观、形象缺点:不能被计算缺点:不能被计算机识别和执行机识别和执行用程序实现算法用计算机能理解和执行的程序设计语言把算法表示出来,然后把程序输入到计算机并执行,计算机才能按照预定的算法去解决问题。不同类型的计算机能够识别的指令和语言不尽相同,即使对同一种计算机语言,不同类型的计算机对该语言的解释程序也有差异。用程序表示算法时,必须按照程序设计语言适用某类计算机的具体规定来进行。VB程序求解sum=1+2+3+4+5问题算法的择优处理同一个问题可能有不同的算法,采用什么样的算法更简单、方便呢?著名数学家华罗庚著名数学家华罗庚“烧水泡茶烧水泡茶”的两个算法。的两个算法。算法一算法一第一步:烧水;第一步:烧水;第二步:水烧开后,洗刷茶具;第二步:水烧开后,洗刷茶具;第三步:沏茶。第三步:沏茶。算法二算法二第一步:烧水;第一步:烧水;第二步:烧水过程中,洗刷茶具;第二步:烧水过程中,洗刷茶具;第三步:水烧开后沏茶。第三步:水烧开后沏茶。第二个算法的科学性在于应用了第二个算法的科学性在于应用了“统筹方法统筹方法”区别?哪个更高效?一个好算法必须用到科学的方法一个好算法必须用到科学的方法 课堂练习小结特征:特征:有输入 确定性 有穷性 有输出 可行性 算法的描述算法的描述用自然语言描述算法用流程图描述算法用程序实现算法 算法算法解决问题的方法和步骤 一个问题,可能有多种算法一个问题,可能有多种算法 ,应该通过分析、,应该通过分析、比较、挑选一种最优的算法。一个好算法必须用到比较、挑选一种最优的算法。一个好算法必须用到科学的方法,应该好好学习各学科处理问题的科学科学的方法,应该好好学习各学科处理问题的科学方法。方法。