(
课件网) (义务教育版)五年级 全一册 第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、依次相 ... ...