内容正文:
课题
猜数“魔法”之二分查找
课型
新授
设计时间
9月1日
教学目标
信息意识:通过猜数游戏与效率对比,感受在海量数据中快速定位目标的现实需求,体会“数据有序+巧妙算法”能极大地提升信息检索效率,养成主动选择高效方法的意识。
计算思维:经历“取中间数—与目标数比较—排除一半范围—重复执行”的探究过程,能用自己的语言和流程图描述二分查找的步骤,归纳出“每次将查找范围缩小一半”的算法模型,并理解“数据有序”是使用二分查找的前提条件。
数字化学习与创新:借助纸牌学具与交互课件体验算法过程,能将二分查找思想迁移到柜子找物、查字典、查电话号码簿等生活情境,尝试用高效算法解决真实问题。
信息社会责任:通过了解计算机运算速度从电子管时代到量子计算的发展历程,认识我国在量子计算领域的世界领先地位,激发科技报国的志向与民族自豪感。
教学重点、难点
重点:理解二分查找法的基本原理——每次取中间数与目标数比较,根据大小排除一半查找范围,反复执行直至找到目标。
难点:理解“数据必须有序”是二分查找的前提条件;体会二分查找效率(对数级)远高于线性查找(线性级)的原因。
教学准备
多媒体课件、二分查找交互游戏
课时安排
1课时
第( 1 )课时
教学过程
二次备课
一、情境导入,激趣引思
师:同学们,上节课我们认识了“线性查找”,知道查找可以帮助我们找到想要的信息。今天,博士爷爷又带来了100张同样的纸牌。
师:这100张牌是按照数的大小从小到大有序排列的。博士爷爷心中想好了一张纸牌,你每次只能翻开一张来猜。如果你翻到的数比想的数大,就会提示“大了”;比想的数小,就提示“小了”。想一想:怎样才能快速地找到要找的纸牌呢?
生1:可以从第1张开始一张一张地翻,翻到要找的数为止。
生2:我觉得一张一张翻太慢了,可以从中间翻起,看是“大了”还是“小了”,再决定往哪边找。
师:同学们都有自己的想法。有人说一张一张找,有人说从中间找。哪种方法更快呢?今天这节课,我们就一起走进“猜数‘魔法’”,学习一种高效的查找方法——二分查找。
二、新授
(一)感知游戏
1.说一说
师:请同学们看游戏要求。同桌之间先互相说一说你要怎么翻。
生1:我先翻中间的那张牌,如果是50,比56小,我就知道56一定在右边,左边的牌都不用看了。
生2:我还可以继续在右边的一半里再翻中间的那张,一次一次缩小范围。
师:说得真好!大家不约而同想到了“从中间开始翻”。这样做的好处是一次就能排除一半的牌!到底怎么翻最快呢?我们亲自来试一试。
2.试一试
师:请同学们打开电脑里的“猜数魔法”小游戏,点击纸牌就可以把它翻开。请你在100张有序纸牌中找到目标数,看看一共翻了多少次,游戏会帮你记录翻牌次数。(学生动手操作游戏,教师巡视指导)
师:谁来汇报一下你的方法和翻牌次数?
生1:我从中间翻,第一次翻到50,提示“小了”,就在51~100里继续找;又翻到75,提示“大了”,再在51~74里找……一共翻了6次就找到了。
师:只用了6次,真厉害!有没有不同的方法?
生2:我一张一张翻,翻到第56次才找到。
师:同样是找56这张牌,翻牌次数差别这么大!把你的方法记录下来吧。
3.记录次数
师:请各小组把组内同学找到纸牌所用的次数记录在表格中。(学生填写记录表:小组同学、找到纸牌所用的次数)
师:观察表格里的数据,你有什么发现?
生1:从中间开始翻的同学用的次数少。
生2:一张一张翻的同学用的次数多。
师:看来,查找的方法不同,效率差别很大。“从中间翻”背后到底藏着什么规律呢?让我们再次采用缩小问题规模的方法,继续通过10个数来展开探索。
(二)探究原理
师:(课件出示有序数列1、2、3、4、5、6、7、8、9、10)我们采用“缩小问题规模”的方法,在下面10个数中找出数7。
1.第一次查找
师:10个数中,中间数是几?
生:中间数是5。
师:目标数7和中间数5比一比,谁大谁小?
生:7比5大。
师:目标数比中间数大,说明7在5的哪一边?
生:在右边,也就是6~10这一边。
师:对!目标数比中间数大,左边的数就可以全部排除。我们把这5个数移出,查找范围缩小到6~10。大家看,这一次查找就排除了多少个数?
生:排除了5个数,正好是总数的一半!
2.第二次查找
师:现在查找范围是6~10,中间数是几?
生:中间数是8。
师:7和8比呢?
生:7比8小。
师:目标数比中间数小,说明7在8的哪一边?
生:在左边,也就是6~7这一边。
师:把右边的数全部移出,查找范围又缩小到6~7,又排除了一半的数!
3.第三次查找
师:现在只剩6和7两个数了,我们继续找中间数,选6。7比6大,说明7在哪边?
生:在右边,把6排除。
师:剩余的最后一个数是7,和目标数相等,查找结束!我们一共找了几次?
生:一共3次就找到了7。
4.归纳总结
师:回顾刚才的探究过程,我们是怎样一步步找到7的?谁能用“先……再……”完整地说一说?
生1:先找有序数列的中间数,再和目标数比较。
生2:如果不是目标数,就能知道它在中间数的左边还是右边,把另一边排除,每查一次范围就缩小一半,一直重复,就能找到。
师:总结得真完整!寻找有序数列的中间数,然后与目标数进行比较,看是否是查找的目标数;如果不是,可以得知目标数在数列中间数的左边还是右边。每查找一次,就能把查找范围缩小一半,重复执行以上操作,就能快速地找到目标数。这样的查找方法就叫二分查找法。
(三)对比分析,感悟效率
师:二分查找法真的这么厉害吗?欢欢的计算机每查找一次需要4微秒。如果在10万亿个数中查找一个数,用线性查找法,最坏的情况大约需要463天!那改用二分查找法,最坏需要多少次呢?(课件出示:第1次10000000000000÷2=5000000000000,第2次5000000000000÷2=2500000000000……第43次2÷2=1)
生:每查一次就少一半,第43次就只剩1个数了。
师:最坏的情况只需要43次!43次×4微秒,算一算还不到1秒钟!
师:同样一个任务,线性查找大约要463天,二分查找不到1秒就完成了,执行效率真是天壤之别!这告诉我们,面对生活中的问题,我们应该思考采用怎样的算法才能更高效地解决。
师:二分查找能这么快,除了算法好,还靠什么?
生:还靠计算机算得快。
师:对!随着科技的进步,计算机的运算速度也在飞速提升。让我们通过视频了解。
师:从“每秒几千次”到“每秒百亿次”,计算机的发展超乎想象。特别是量子计算,我国的技术水平已经走在世界前列,这是值得我们骄傲和自豪的事!
三、巩固应用,迁移提升
1.想一想
师:如果数列是无序的,还能使用二分查找法吗?
生1:不能。因为二分查找要先找中间数,如果数列没有按顺序排列,就不知道“中间数”两边数的规律。
生2:无序数列里中间数左边可能比它大,右边可能比它小,没法判断目标数在哪边。
师:说得好!二分查找法有一个重要前提数列必须是有序的。
2.练一练
师:团团遇到一个难题。器材室里有62个柜子,编为1至62号,团团从1号开始按顺序把运动器材放入柜子并关上柜门。这天他忘记器材摆放到多少号柜子了,怎样尽可能减少开门次数来确认?同桌讨论:用什么办法找最快?
生:先开31号柜子,看看器材放到哪儿了,就能知道继续摆放在31号左边还是右边,每次排除一半,最多开6次左右就能找到。
师:真会运用!这就把二分查找法用到了生活中。
3.找一找
师:生活中还有哪些地方可以用到二分查找法呢?生1:查电话号码时,可以按字母顺序快速定位。
生2:查字典时,先翻到中间页,根据读音或部首缩小范围。
生3:图书馆找书、网上猜价格游戏也能用。
师:大家举的例子都很贴切!只要数据是有序的,二分查找法就能帮我们快速找到目标。
四、课堂小结
师:这节课你有哪些收获?
生1:我学会了二分查找法,知道每次查找都能排除一半的数。
生2:我知道了二分查找法只能在有序数列中使用。
生3:我体会到选对方法很重要,好方法效率特别高。
师:同学们收获满满!请记住:有序数列+二分查找=快速找到目标。课后请大家完成练习设计,并向家人介绍二分查找法。下课!
练习设计
在生活中找出3个可以用到二分查找思想的例子。
板书设计
猜数“魔法”之二分查找
取中间数→与目标数比较
目标数小→排除右边一半(往左找)
目标数大→排除左边一半(往右找)
相等→找到目标!
每次排除一半,重复执行
前提:数据必须有序
效率对比:线性查找463天VS二分查找不到1秒!
课后反思
学科网(北京)股份有限公司
$