内容正文:
不同算法的效率
同一问题可以用不同的算法解决。
那么,猜数游戏中不同算法的效率会不同吗?
8+6=?
9+7=?
五下U5 算法的效率
X老师
5-2
不同算法的效率
5-1问题规模与算法步骤的执行次数
5-2不同算法的效率
目
录
CONTENTS
01
不同的猜数方法
与计算机玩猜数游戏
02
不同算法的效率
03
Part One
01
不同的猜数方法
不同的猜数方法
新的猜数游戏规则(猜数范围为1~10)。
当同学A猜数时,同学B会给出“大了”“小了”的提示,并且猜过的数字不能再猜。
思考并讨论:这个猜数游戏规则下,可以有几种猜法?
不同的猜数方法
猜数规律:基于直觉,随便猜
随机猜数
7?
大了!
1?
小了!
方法一
3?
猜对了!
不同的猜数方法
猜数规律:按照从小到大、或从大到小顺序依次猜数
顺序猜数
1?
小了!
2?
小了!
方法二
3?
猜对了!
不同的猜数方法
猜数规律:将数据集一分为二,比较目标值与中间值的大小,逐步缩小查找范围
二分法猜数
从1~10的中间数“5”开始猜
大了!
3?
小了!
方法三
8?
猜对了!
或
可能经历多轮猜数
Part Two
02
与计算机玩猜数游戏
体验猜数游戏程序
随机猜数:
第1次我用了 次猜对。
第2次我用了 次猜对。
第3次我用了 次猜对。
顺序猜数:
第1次我用了 次猜对。
第2次我用了 次猜对。
第3次我用了 次猜对。
二分法猜数:
第1次我用了 次猜对。
第2次我用了 次猜对。
第3次我用了 次猜对。
想想:只依据3次猜数的结果能判断出哪种算法更高效吗?
(猜数范围为1~10)
用不同的猜数算法与计算机玩猜数游戏,并记录猜对的次数。
Part Three
03
不同算法的效率
不同算法的效率
在玩游戏的过程中,经过多次实验,发现三种猜数算法都存在“最少次数”和“最多次数”,并将这些数据记录在表格中。
结论:在相同的问题规模下,通过比较“最多次数”的数据可以看出,三种猜数算法中,二分法猜数的效率最高。
猜数算法 问题规模:10个数
最少次数 最多次数
随机猜数 1 10
顺序猜数 1 10
二分法猜数 1 4
分析数据,哪种算法效率更高?
猜数算法 问题规模:100个数
最少次数 最多次数
随机猜数 1 100
顺序猜数 1 100
二分法猜数 1 7
现有一个包含30个数字的斐波那契数列,需要查找“17711”是其中的第几项。
枚举法流程图
请你使用“枚举法查数”和“二分法查数”两个自定义函数编写程序,帮助完成查找任务。同时,观察两种算法的执行情况,并验证这两种算法的效率的差别。
体验不同算法的效率
斐波那契数列:1、1、2、3、5、8、13、21、34、…
程序界面
体验不同算法的效率-枚举法VS二分法
斐波那契数列程序
枚举法程序
体验不同算法的效率-枚举法查数
是第22个数,用时( )秒
运行程序,输入17711,记录答案和时间
二分法程序
体验不同算法的效率-二分法查数
是第22个数,用时( )秒
运行程序,输入17711,记录答案和时间
用二分法查数时,有限数列里的数据必须是有序的。由于二分法的查数效率较高,因此在有限的有序数列中查数时,往往首选二分法。
不同算法的效率
“枚举法查数”与“二分法查数”相比,哪种方法用时更少?是否符合实验前的预测?
阅读“查数”程序中的两个自定义函数,想一想:怎样修改程序可以减少其运行时间?
算法效率与生活
算法在我们生活中被广泛应用。在解决问题时,高效的算法能够快速处理大量数据并帮助我们做出决策,从而提供更好的服务和体验。
算法效率与生活
在猜数好的算法不仅要“解决问题”,还要能“高效地”解决问题。因此,在设计算法时,我们应设法让算法用更少的步骤、占用更少的计算机空间,从而更快、更好地解决问题。
可以省略对解决问题作用不大的步骤
可以通过精准控制循环次数,减少算法步骤的执行次数
在设计算法时,如何提高算法的效率?
挑战任务
借助人工智能,了解上述求和问题的不同求解算法,并比较它们的效率
尝试设计算法,求“1+2+……+100”的和。比一比看谁设计的算法效率更高
累加法
(高斯求和)公式法
和=(首项+末项)× 项数 ÷ 2
X老师
希望本节课有所收获
五下U5 算法的效率
$