算法:二分法查找适用于数据量较大时,但是数据需要先排好顺序。主要思想是:(设查找的数组区间为array[low, high])
举两个生活中的例子。
比如,某小区停电,电工排查路上的电线。
这段线有10km长。如果沿着线路一小段一小段查找,困难很多.每查一个点要爬一次电线杆子,10km长,这里假设共有200根电线杆子.
因此就可使用二分法:设电线两端分别为A、B,他首先从中点C(第100根电线杆)查,用随身带的话机向两端测试时,发现AC段正常,则断定故障在BC段。
然后再到BC中点D,发现BD正常,可见故障在CD段,再到CD中点E来看,这样每查一次,就可以把待查线路长度缩减为一半。
只要经过7次查找,就可以将故障发生的范围缩小到50—100m左右,即在一两根电线杆附近.这样就省了很多精力了.
这个二分法查找,就是利用指数爆炸来进行的。2的七次方是128,差不多就是200根的一半了。这样每次一半一半的测试,很容易就找到故障点。
另一个例子是寻找犯人。以下是书上的截图。
问题:15个人中找犯人,每个人都会说真话。
先以最小的情况——三个人时,只要问中间的人就能得到答案:
15人情况,从中间开始问:
「艾尔登法环」梅琳娜手办开订 立体手办▪
万代「艾尔登法环」白狼战鬼手办开订 立体手办▪
「夏目友人帐」猫咪老师粘土人开订 立体手办▪
「五等分的新娘∬」中野三玖·白无垢版手办开订 立体手办▪
「海贼王」乌索普Q版手办开订 立体手办▪
良笑社「初音未来」新手办开订 立体手办▪
「黑岩射手DAWN FALL」死亡主宰手办开订 立体手办▪
「盾之勇者成名录」菲洛手办登场 立体手办▪
「魔法少女小圆」美树沙耶香手办开订 立体手办▪
「咒术回战」七海建人粘土人登场 立体手办▪
「五等分的新娘」中野二乃白无垢手办开订 立体手办▪
「为美好的世界献上祝福!」芸芸粘土人开订 立体手办▪
「公主连结 与你重逢」六星可可萝手办开订 立体手办▪
「女神异闻录5」Joker雨宫莲手办开订 立体手办▪
「间谍过家家」约尔・福杰粘土人登场 立体手办▪
「街角魔族 2丁目」吉田优子手办开订 立体手办▪
「火影忍者 疾风传」旗木卡卡西·暗部版粘土人登场 立体手办▪
「佐佐木与宫野」宫野由美粘土人开订 立体手办▪
「盾之勇者成名录」第2季拉芙塔莉雅手办开订 立体手办▪
「咒术回战」两面宿傩Q版坐姿手办开订 立体手办▪
「DATE·A·BULLET」时崎狂三手办开订 立体手办▪
「狂赌之渊××」早乙女芽亚里粘土人开订 立体手办▪
「魔道祖师」魏无羨粘土人开订 立体手办▪
「新·奥特曼」奥特曼手办现已开订 立体手办▪