在游戏中学习二分查找的算法思想论文.docVIP

在游戏中学习二分查找的算法思想论文.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在游戏中学习二分查找的算法思想论文.doc

  在游戏中学习二分查找的算法思想论文 摘 要:本文的主要内容包括:二分查找的算法思想;讲解中不易理解、掌握的原因;通过游戏理解算法。通过游戏中学习二分查找的算法思想教学过程,让学生参与其中,体验过程,分析原因,得出结论。关键词:二 摘 要:本文的主要内容包括:二分查找的算法思想;讲解中不易理解、掌握的原因;通过游戏理解算法。通过游戏中学习二分查找的算法思想教学过程,让学生参与其中,体验过程,分析原因,得出结论。 关键词:二分查找 游戏理解算法 游戏 一、二分查找的算法思想 在已经排好序的数列中,首先找到中间的记录,这时可能会出现三种情况之一(假设按升序排列)。 1)该记录对应字段的值小于查找关键字,此时应在前半部分记录中继续查找。 2)该记录对应字段的值大于查找关键字,此时应在后半部分记录中继续查找。 3)该记录对应字段的值等于查找关键字,那么就已找到了查找目标,查找结束。 如果出现前两种情况,则继续在前半部分或后半部分内进行对半查找,直到出现第三种情况为止。如果沿指定方向测试完成所有记录时仍未出现第三种情况,则表示未找到查找目标,查找也结束。 二、讲解中不易理解、掌握的原因 单看这一串算法思想的解释有些学生便有些没有耐心了,更不用说去掌握应用了。或者有些人生硬地记住了这些原理却没有真正地理解,写程序时也会漏洞百出的。只有让学亲身体会了查找的过程,才能理解算法思想,才能想到编程时的条件设置及注意点。从而真正达到理解、应用的最终目标。 三、通过游戏理解算法 游戏过程如下: 第一步:把10名同学按身高从低到高排成一列,并依次排号为1到10号。并另找一位学生,称为X,找一找10人中有无与X同样身高的。若有则输出他的号码。 第二步:让其它学生自己想方法去解决这个问题。讨论之后学生得出了这样一个结论:把X与这一列中1号到10号的每个人依次比较过去,便有结论出来了。教师总结:这种方法叫顺序比较法,可以达到目的,但是程序的复杂度比较高,比如说有1000人或者有10000人或者更多的话,这种方法就体现不出优越性了。如何更快更简便地得到结论呢?这时教师引入二分法的思想:从10个中找出中间位置的一位同学与X 进行比较。有三种结论:1、若相等则表示找到,停止程序。2、若比X高,那么与X等高的得在中间往后的这部分人中找。3、若比X低,那么与X等高的得在中间往前的这部分人中找。在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=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=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号所以要舍弃中间往前的部分,在后半部分找,于是剩下: 6号 7号 8号 9号 10号 队首:6号 队尾:10号 找到中位置MID=(6+10)/2=8号 因为X 8号所以要舍弃中间往前的部分,在后半部分找,于是剩下: 9号 10号

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档