内容正文:
第二单元 算法的效率
算法的效率
第八课
浙教版·六年级
学习目标
01
课堂导入
02
问题分析
03
解决问题的多种算法设计
04
解决问题的多种算法验证
05
目录
CONTENTS
建构
06
课堂任务
2
PART 1
学习目标
学习目标
1.通过体验猜数字游戏,初步了解同一个问题可以采用多种算法来解决的概念。
2.通过设计猜数字游戏的算法,理解顺序查找和二分查找的思想,树立使用多种方法解决同一个问题的意识。
3.通过验证猜数字游戏的算法,初步掌握顺序查找和二分查找的程序设计方法,提高算法实现的能力。
PART 2
课堂导入
课堂导入
同学们请看下面的图,从童童家到学校的路线中,有几种选择呢?我们可以选择CA、CB、DA、DB、EA、EB像这样的列举法来统计几种选择,还可以使用3乘以2得到6种选择。可见我们在解决问题时可以有多种方法,也就是多种算法。
PART 3
问题分析
新知探究
我们解决猜数字游戏问题时,既可以采用随机抽取法还可以选择顺序查找和二分查找算法。
问题分析
随机选择一个数,
看看是不是猜对了
一个一个的测试,看看到底是数字几?
二分法不断缩小范围来猜数字?
还有其他什么方法······
新知探究
问题分析
顺序查找法与取中间数查找法
将1到100的数,从小到大或者从大到小的顺序依次与da比较,直到找到为止。
顺序查找法
取中间数
查找法
将1到100的数,从小到大或者从大到小的顺序依次与da比较,直到找到为止。
1~100范围内的数是依次增加的,依据该有序性可依次取中间数来查找。先取1~100的中间数50与da比较,若da等于50,则查找成功;若da小于50,则取1~49的中间数25与da比较;若da大于50,则取51~100的中间数75与da比较……如此反复,直到找到为止。
新知探究
我们设置猜数字游戏的目标值为37,运用去中间数查找法来猜数字。
问题分析
1 2 ··· 49 50 51 ··· 98 99 100
1 2 ··· 24 25 26 ··· 47 48 49
26 27 ··· 36 37 38 ··· 47 48 49
查找0-100的中间数为50,范围缩小到1-49
50>37,查找0-49的中间数25,范围缩小到26-49
25<37,查找26-49的中间数37
37=37,查找成功。
新知探究
我们设置猜数字游戏的目标值为37的顺序查找
问题分析
将1到100的数,从小到大或者从大到小的顺序依次与da比较,如果目标值是37从小到大查找需要查37次,从大到小查需要查64次。
PART 4
解决问题的
多种算法设计
算法一:顺序查找算法设计流程图
多种算法设计
新知探究
假设目标数为37,并用变量da表示,取到的数用变量cai表示。
猜的数值从1开始赋值
算法二:二分查找法(取中间数查找法)算法设计图
多种算法设计
新知探究
假设目标数为37,并用变量da表示,计算得到的中间值用变量cai表示,用变量cz和zz表示可取数的范围,初始查找范围为1~100,则cz的初值为1,zz的终值为100。
猜的数初始范围设置为1到100
PART 5
解决问题的
多种算法验证
新知探究
多种算法验证
da=37
cai=1
while cai<101:
if cai==da:
print("找到的数为:",cai)
break
else:
cai=cai+1
break语句的作用是终止所在的循环。
算法一:顺序查找算法的程序验证
新知探究
多种算法验证
算法二:二分查找法的流程图验证
循环次数 cai cz zz
1 50 1 49
2 25 26 49
3 37 26 49
通过三次取中间值,缩小范围,很快找到结果
PART 6
课堂任务
课堂任务
这节课我们通过对“猜数字”游戏使用顺序查找法和,二分法查找法的算法设计和算法验证,了解到可以采用多种算法来解决同一个问题。
练习任务:请同学们在上述算法一中,若变量cai的取值按照逆序进行取值,依次为100,99,…,2,1,则相应的算法和程序如何修改?
谢谢
下节课见!
Thanks!
浙教版·六年级
$