折半查找法如何在Excel函數(shù)中的運(yùn)用
折半查找法如何在Excel函數(shù)中的運(yùn)用
排序與查找不管是在Excel領(lǐng)域,還是其他領(lǐng)域,學(xué)會(huì)了這個(gè)技能,我們做起事情來(lái)更加方便快捷,省去不少時(shí)間,效率倍增。以下是學(xué)習(xí)啦小編為您帶來(lái)的關(guān)于折半查找法在Excel函數(shù)中的運(yùn)用,希望對(duì)您有所幫助。
折半查找法在Excel函數(shù)中的運(yùn)用
折半查找
又稱之為二分查找,它要求目標(biāo)數(shù)組中的數(shù)據(jù)是有序排列的。優(yōu)點(diǎn)是比較次數(shù)少,查找速度快,平均性能好,適用于不經(jīng)常變動(dòng)而查找頻繁的有序列表。下面先來(lái)看看下面的流程圖。
為了便于大家理解,我作幾點(diǎn)說(shuō)明:
?、賹⑿枰檎业闹蹬c中間值(也叫做中位值)進(jìn)行對(duì)比;
?、诖笥谥形恢禃r(shí),以中位作為邊界,繼續(xù)在其右側(cè)取新的中位值繼續(xù)對(duì)比;
③小于中位值時(shí),以中位作為邊界,繼續(xù)在其左側(cè)取新的中位值繼續(xù)對(duì)比;
?、艿扔谥形恢禃r(shí),依次判斷其右側(cè)數(shù)值是否繼續(xù)相等,直到不相等時(shí)返回最后一個(gè)相等的數(shù)值;
⑤當(dāng)中位位置與邊界重疊時(shí),中止對(duì)比,此時(shí)如果查找值大于中位值,則返回中位值;如果查找值小于中位值,則返回中位左側(cè)數(shù)值。如果左側(cè)數(shù)值不存在,返回#N/A。
流程圖大致的介紹就是如此,不知道我描述是不是清楚,這只是一個(gè)算法而已,不懂也不需要太過(guò)深入研究。當(dāng)數(shù)據(jù)個(gè)數(shù)為偶數(shù)時(shí),中位等于個(gè)數(shù)除以2;數(shù)據(jù)個(gè)數(shù)為奇數(shù)時(shí),中位等于<個(gè)數(shù)+1>除以2
案例剖析
?、偃缦聢D所示,給出了一連串升序排列的數(shù)組,我們要找出33這個(gè)數(shù)。按照上面的介紹,我們知道中位值為24.
②第一次比較,因?yàn)?3>24,所以鎖定第二次查找范圍在中位值的后面,而不是前面,前面的數(shù)字都比24小,不可能找得到33.
?、鄣诙伪容^,中位值變?yōu)榱?1,33>31,繼續(xù)找后面的。
?、芤来晤愅?,直到找到數(shù)字或者整個(gè)數(shù)組被查找完畢,沒(méi)有找到則會(huì)返回#N/A
現(xiàn)在或許大家還在疑問(wèn)為什么要是一個(gè)有序的序列才可以進(jìn)行折半查找?下面這張圖,與之前的圖對(duì)比一下,你就知道了。
Excel中也有類似的函數(shù),LOOKUP,我們要查找74,但是用LOOKUP函數(shù)計(jì)算出來(lái)的結(jié)果卻是49,下面就來(lái)分析一下。
?、俚谝淮伪容^74小于116,所以開始往前查找。
?、谥形恢底?yōu)?0.74大于50,向后查找。
?、?4又大于47,依舊向后。
④最后只剩下一個(gè)49了,這就是函數(shù)的返回值。
猜你喜歡:
1.excel如何使用條件統(tǒng)計(jì)函數(shù)
2.excel表格ADDRESS函數(shù)怎樣設(shè)置對(duì)某單元格引用