在游戏中学习二分查找的算法思想

在游戏中学习二分查找的算法思想

ID:9665191

大小:58.50 KB

页数:4页

时间:2018-05-05

在游戏中学习二分查找的算法思想_第1页
在游戏中学习二分查找的算法思想_第2页
在游戏中学习二分查找的算法思想_第3页
在游戏中学习二分查找的算法思想_第4页
资源描述:

《在游戏中学习二分查找的算法思想》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、在游戏中学习二分查找的算法思想摘 要:本文的主要内容包括:二分查找的算法思想;讲解中不易理解、掌握的原因;通过游戏理解算法。通过游戏中学习二分查找的算法思想教学过程,让学生参与其中,体验过程,分析原因,得出结论。关键词:二分查找 游戏理解算法 游戏一、二分查找的算法思想在已经排好序的数列中,首先找到中间的记录,这时可能会出现三种情况之一(假设按升序排列)。1)该记录对应字段的值小于查找关键字,此时应在前半部分记录中继续查找。2)该记录对应字段的值大于查找关键字,此时应在后半部分记录中继续查找。3)该记录对应字段的值等于查找关键字,那么就已找到了查找目标,查找结束。如果出现

2、前两种情况,则继续在前半部分或后半部分内进行对半查找,直到出现第三种情况为止。如果沿指定方向测试完成所有记录时仍未出现第三种情况,则表示未找到查找目标,查找也结束。二、讲解中不易理解、掌握的原因单看这一串算法思想的解释有些学生便有些没有耐心了,更不用说去掌握应用了。或者有些人生硬地记住了这些原理却没有真正地理解,写程序时也会漏洞百出的。只有让学亲身体会了查找的过程,才能理解算法思想,才能想到编程时的条件设置及注意点。从而真正达到理解、应用的最终目标。三、通过游戏理解算法游戏过程如下:第一步:把10名同学按身高从低到高排成一列,并依次排号为1到10号。并另找一位学生,称为X

3、,找一找10人中有无与X同样身高的。若有则输出他的号码。第二步:让其它学生自己想方法去解决这个问题。讨论之后学生得出了这样一个结论:把X与这一列中1号到10号的每个人依次比较过去,便有结论出来了。教师总结:这种方法叫顺序比较法,可以达到目的,但是程序的复杂度比较高,比如说有1000人或者有10000人或者更多的话,这种方法就体现不出优越性了。如何更快更简便地得到结论呢?这时教师引入二分法的思想:从10个中找出中间位置的一位同学与X进行比较。有三种结论:1、若相等则表示找到,停止程序。2、若比X高,那么与X等高的得在中间往后的这部分人中找。3、若比X低,那么与X等高的得在中

4、间往前的这部分人中找。在2或3中又重复同一过程。第三步:游戏分进行3次第一次游戏选择一个学生X,其身高与九号学生刚好相同(假设不知道)游戏过程如下:1号 2号 3号 4号 5号6号 7号 8号 9号 10号队首:1号队尾:10号找到中位置MID=(1+10)2=5号因为X>5号所以只能舍弃前半部分,在后半部分找,于是只剩下6号 7号 8号 9号 10号队首:6号队尾:10号找到中间位置:MID=(6+10)2=8号因为X>8号所以只能舍弃前半部分,在后半部分找,于是只剩下9号 10号队首:9号队尾:10号找到中间位置:MID=(9+10)2=9号因为X=

5、9号,找到。停止寻找。在这轮游戏中可以发现从第二次开始每次的队首都是前一次求得的中间值加1得到的。也可理解为从中间一项往后开始下一次寻找。第二次游戏:假设X的身高小于所有队列中的同学1号 2号 3号 4号 5号6号 7号 8号 9号 10号队首:1号队尾:10号找到中位置MID=(1+10)2=5号因为X<5号所以要舍弃中间往后的部分,在前半部分找,于是剩下:1号 2号 3号 4号队首:1号队尾:4号找到中位置MID=(1+4)2=2号因为X<2号所以要舍弃中间往后的部分,在前半部分找,于是剩下:1号队首:1号队尾:1号找到中间位置:MID=(1+1)2

6、=1号因为X<1号,所以要舍弃中间往后的部分,在前半部分找,而前面已无学生了,也就是说在队列中找不到与X相同身高的学生.。若按照前面的方法,可得如下的结论:队首:1号队尾:—1号因为队列中最小是1号,最大是10号,不存在—1,可见出列了,也可知队列中没有与X身高相同的同学。由上可见,从第二次开始,每次队尾的值都是前一次的中间值减1得到的,而当队尾小于队首时即可知X不在队列中。第三次游戏:假设X比队列中的任何一位同学都要高。1号 2号 3号 4号 5号6号 7号 8号 9号 10号队首:1号队尾:10号找到中位置MID=(1+10)2=5号因为X>5号所以要舍

7、弃中间往前的部分,在后半部分找,于是剩下:6号 7号 8号 9号 10号队首:6号队尾:10号找到中位置MID=(6+10)2=8号因为X>8号所以要舍弃中间往前的部分,在后半部分找,于是剩下:9号 10号队首:9号队尾:10号找到中位置MID=(9+10)2=9号因为X>9号所以要舍弃中间往前的部分,在后半部分找,于是剩下:10号队首:10号队尾:10号找到中位置MID=(10+10)2=10号因为X>10号所以要舍弃中间往前的部分,在后半部分找,而后面已无学生了,也就是说在队列中找不到与X相同身高的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。