《野牛程序员讲少儿编程算法》系列,带娃走进一个聪明得不像话的查找方法——二分查找!
今天继续《野牛程序员讲少儿编程算法》系列,带娃走进一个聪明得不像话的查找方法——二分查找!
二分查找是啥?
想象一下,一本词典有上千页,现在要找“熊猫”这两个字。
普通查找:
从第一页一个个翻,翻到眼睛掉出来还没找到……
二分查找:
🦅 直接翻到中间——一看,“老虎”?比“熊猫”早,那就只查前半本;
再翻中间——“猫”?还在前面,再往前翻!
几下就搞定!
这就是二分查找法:每次都把查找范围砍一半!
🧠 二分查找的“数学脑筋”思路:
适用于有序数组
思路如下:
找到中间的元素mid
如果目标比它小,就在左边找
如果目标比它大,就在右边找
如果正好相等?恭喜,找到了!
举个例子:
在数组[2, 5, 8, 12, 16, 23, 38, 56]中查找数字23
中间是 12(位置3),23 > 12
往右边找
右边是[16, 23, 38, 56],中间是 23
找到了!
只查了两次,比一个个查快得多得多得多!
C++ 代码(让孩子也能看懂的版本):
🤹 为什么它很牛?
查找效率高,时间复杂度是 O(log n),比挨个找快多了
数越多,优势越明显
培养孩子的“折半思维”和“区间收缩”逻辑概念
小课堂互动:
:老师老师,数组不是乱的吗?
🧑:注意!二分查找只能用在有序数组上哟!
:那找不到咋办?
🧑:返回-1,说明数组里没这个数~
🧠 小挑战题:
数组[1, 3, 5, 7, 9, 11]中查找数字 7,
每一次中间元素是多少?都往哪边找?
在纸上画出查找过程!
野牛程序员教少儿编程与信息学奥赛
宜宾市野牛网络科技有限公司专业微信小程序开发、网站建设、软件开发等