vlambda博客
学习文章列表

一图学懂信奥赛基石级考点:二分查找


本篇文章 818 字,3 张图片,预计 7 分钟读完,收下这份二分查找的入门攻略,快来学习吧~


关于二分查找如何学习,网络上有很多的资料,难点在于孩子如何能把这种抽象的算法具象化。


今天,小蒜头换一种方式为大家讲解 CSP-J/S 初赛、复赛中基石级地位的知识点:二分查找。


一图学懂信奥赛基石级考点:二分查找


如果孩子不仅能看得懂上图的演示,并且对每一帧背后的代码原理都了如指掌,不好意思打扰了,请忽略下文的讲解,直接 跳到文末即可




二分查找

信奥基石级考点学习


想象生活中遇到这样一个问题:有 16 个不同的数字按照升序排列,现在我想要知道数字 x 在数列中的哪一个位置?


正常思路:一般情况下,我们会从第一个数字开始去寻找,直到找到数字 x,我们就知道它的位置了。


二分查找:神奇的二分查找算法就可以更高效的找到它的位置!


Step1:首先我们要明确查找区间:最左边是 1,最右边是 16,接下来我们在这个区间中得到区间的中间位置 mid,也就是 8 这个位置。如果这个位置的数就是 x 的话,我们一次就得到了答案,如果小于 x 的话,说明区间 [1,mid] 的所有数均小于 x,直接就可以舍弃掉这部分数了,所以令新的查找区间为 [mid+1,16]。同理,如果大于 x 的话,说明区间 [mid, 16] 的所有数均大于 x,可以直接舍弃,新的查找区间为[1 , mid]。


Step2:我们可以在新的查找区间里面进行多次同样的操作,不断的缩小查找区间,直到找到数字 x 为止。


估计很多同学看到这里已经炸了,没关系,前面的可以不用再看了一图学懂信奥赛基石级考点:二分查找,直接理解下面这个图:


1)右下角是二分查找的算法;

2)右上角是每一行代码的解读;

3)左半部分是每一行代码的执行效果,与代码一一对应。


一图学懂信奥赛基石级考点:二分查找

△二分查找演示


当然,二分查找只是信息学学习中众多抽象概念中的其中一个知识点,类似这样的抽象概念如递归、栈等还有很多。


一图学懂信奥赛基石级考点:二分查找

△字典树演示


计蒜客拥有 40 多个交互演示课程可供同学们学习,课程用动画的形式,生动形象的展现抽象的算法概念;通过步骤播放,让孩子更深刻的理解算法过程。



扫描下方二维码添加小蒜头

免费   领取『二分查找』 交互演示课程

一图学懂信奥赛基石级考点:二分查找


一图学懂信奥赛基石级考点:二分查找

一图学懂信奥赛基石级考点:二分查找

一图学懂信奥赛基石级考点:二分查找

点分享

点点赞

点在看