资源简介 神奇算法有力量 ——初识具体算法 “皇后的烦恼”“泡茶喝”“电子密码锁”等都与算法相关,算法是如何形成的呢? 想一想 把“泡茶喝”算法描述出来,别人只要照做,就能完成任务。 参照下面“泡茶喝”的文字描述算法,用符号、图表等描述我认为更好的“泡茶喝”算法。 “泡茶喝” 算法 第一步:洗水壶; 第二步:洗茶壶; 第三步:洗茶杯; 第四步:烧开水,同时准备茶叶; 第五步:泡茶。 学一学 一、算法的形成 “泡茶喝”的算法人和计算机都能实现,如何让人和计算机都能准确理解这个算法,并能举一反三地应用到其他类似问题中,成为我们最关心的问题。可以分3步思考。 目前,只剩下 不在上图中。 动动脑 放在哪? 如果把它放在图中虚框时间段内,有什么好处?它与图中 、 两个动作有顺序要求吗? 二、形成算法的两种基本思维 生活中的问题千奇百怪,解决问题的算法也就有成千上万。算法的形成有规律可循吗? 除了经验,更重要的是思维方式,它能帮我们更快认清问题的本质,形成解决算法。思维方式很很多,比较简单的两种基本思维方式是:分步和分解。 以“把东西放进冰箱”为例,用分步的思维方式,它可以简单地分为三步: 1.打开冰箱门; 2.把东西放进冰箱; 3.关上冰箱门。 第1、3步简单。第2步看上去好解决,因为我们容易想当然地认为这个“东西”是可以方便放进冰箱的。如果这个“东西”是个比较大的西瓜,直接放不进去,那又如何才能把它放进冰箱呢? 有人说,把西瓜切成小片就可能放进冰箱了。也有人说,腾出冰箱里的部分物品或者找一个较大的冰箱都可能解决问题啊。这里都是在围绕第2步解决问题。当某一步不能简单的直接解决时,可以把这一步分解成方便解的小问题,如:把西瓜切成小片,把小片西瓜放进冰箱等。当我们把第2步中的所有小问题都解决了,这一步也就解决了。 分步与分解 分步主要考虑动作的时间先后问题,分解主要考虑问题规模的大小问题。 分步分解的每一步都要求是一个容易解的小问题,如果直接解有困难,有两种解决思路(1)把该步骤分成多步;(2)不方便分步时,把该步分解成方便解的小问题。 练一练 用分步分析、问题分解思想分析一下“泡茶喝”算法。 提示:“泡茶喝”存在动作先后问题;算法第3步“合并成动作先后关系图”需要问题分解。 对比分步分析与问题分解算法的区别与联系。 探一探 谢谢 展开更多...... 收起↑ 资源预览