资源简介 (共23张PPT)(义务教育版)五年级全一册第14课算法效率比一比学习目标激趣导入学习活动思考-讨论课堂练习课堂小结拓展与提升单元主题单元主题单元名称 课名称 核心内容第四单元 发挥算法的优势 第13 课 让计算机会数数 用循环结构解决问题时的重复过程,认识循环结构和计算机工作特点的关系。第14 课 算法效率比一比 解决同一个问题可以有不同的算法,不同的算法具有不同的效率。第15课 简单密码易破解 估算破解密码所需的重复判断次数和时间,利用枚举法遍历数据。学习目标激趣导入同学们,老师要把 8 颗不同颜色的珠子串成漂亮的手链。一种办法是随便拿珠子串,串了不合适就拆了重新串;另一种是先按颜色排好序再串。你觉得哪一种更好呢?学习活动学习活动活动1:用不同方法统计物体数量一思考-讨论一、用不同方法统计物体数量一堆物体摆放如下图所示,要统计有多少个,你能想到哪些方法?学习活动一、用不同方法统计物体数量第一种算法:把物体逐层进行累加。第二种算法:观察图形,发现可以用前面学习过的方法,即利用正反放置的两个梯形组成平行四边形,通过求平行四边形中物体的个数来计算。s = (1+n)* n / 2=(1+10)*10/2= 55学习活动一、用不同方法统计物体数量通过比较发现:算法 1 简单直观,易于理解,算法 2 所用的步数较少,计算起来更快。从前面的分析可知,通过求“1+2+3+…+10”的两种不同算法,说明解决同一个问题时,不同的算法会有不同的步骤,也就可能存在不同的效率。学习活动活动2:累加运算的效率分析二学习活动二、累加运算的效率分析通常,用计算机解决问题时会用以下两种方法来比较算法的效率。一是比较算法运行所需要的时间。二是比较算法运行时所需的步数或者占用的资源。下面主要从时间上来进行分析。学习活动二、累加运算的效率分析大家听过数学家高斯小时候计算“1+2+3+…+100”的故事吧?高斯使用第二种算法很快给出了答案,比其他孩子的速度都快。为什么会这样呢?我们先来做一个“合理假设”:如果做 1 次加法用时 1 秒、做 1 次乘法用时 10 秒、做 1 次除法用时 15 秒。学习活动二、累加运算的效率分析用第一种算法计算:需要计算约 99 次加法,这样即使每次加法只用 1 秒,而且每次中间相加的结果都正确,最终也需要大约 99 秒的时间才能计算出结果。用第二种算法来计算:只需要 1 次加法(即 100 + 1)、1 次乘法(即 101×100)和 1 次除法(即除以 2),需要约 1+10+15 = 26 秒。因此,单从计算步骤和时间上看,第二种算法似乎比第一种更高效。学习活动二、累加运算的效率分析但是,问题并没有那么简单。因为做乘法和除法时,通常比做加法需要更长时间。因此,如果以上假设并不成立,比如,如果做 1 次乘法或 1 次除法都需要 50 秒,那么用第二种算法所需的时间就会变成 1 + 50 + 50 =101 秒 。通过上述分析可知,从用算法解决问题的角度看,要准确地比较不同算法的效率,往往比我们预想的要难很多。通常需要从数据量、步骤多少、所需时间等方面综合考虑。学习活动活动3:感受不同算法的运算效率三学习活动三、感受不同算法的运算效率解决同一个问题通常可以用不同的算法,选择不同算法并编程实现后,程序一般会在运算速度、计算精度等方面有不同的表现。下面通过用程序验证上述累加运算的两种算法,体会算法的效率差异以及不同程序实现引起的差异。“累加 1.py”程序是用算式直接累加与用公式累加的对比。“累加 2.py”程序是用循环结构实现累加与用公式累加的对比。1、计算 1+2+3+...+100 的和,以下哪种算法是可行的?( D )A、依次相加:1+2=3,3+3=6,6+4=10,...,一直加到 100B、利用等差数列求和公式:(首项 + 末项)× 项数 ÷2C、先计算 1 到 50 的和,再计算 51 到 100 的和,最后将两部分和相加D、以上都是课堂练习单选题2、在处理大数据量的问题时,选择高效的算法主要是为了 ( B )A、使程序看起来更高级B、减少程序运行时间,提高处理速度C、减少程序的代码量D、增加程序的可读性课堂练习单选题课堂小结拓展与提升尝试用两种算法计算 1 到 1000 的和。(例:一种算法是从 1 开始一个一个加,另一种可以用首尾相加再乘个数除以 2)。并思考哪一种算法效率更高?https://www.21cnjy.com/recruitment/home/fine 展开更多...... 收起↑ 资源预览