- 相關(guān)推薦
excel中LOOKUP函數(shù)的二分法查找策略
二分法查找又稱折半查找,它是一種效率較高的查找算法。二分法通常要求目標(biāo)數(shù)組中的數(shù)據(jù)是有序排列的。LOOKUP函數(shù)所使用的查找策略就是二分法,不僅僅是LOOKUP,其實(shí)VLOOKUP/HLOOKUP函數(shù)在其第四參數(shù)為True時(shí)、MATCH函數(shù)在其第三參數(shù)為1時(shí)也都是遵循了二分法的查找原則來(lái)進(jìn)行運(yùn)算的。
二分法的具體方法,通常會(huì)通過(guò)下面這個(gè)流程圖來(lái)表達(dá):
但流程圖過(guò)于抽象,為了讓這個(gè)查找過(guò)程更容易理解,嘗試使用其他方法再進(jìn)行一些解讀。
首先是算法文字描述:
1, 將查找值與目標(biāo)向量中的“中位值”進(jìn)行對(duì)比
2, 大于中位值時(shí),以中位作為邊界,繼續(xù)在其右側(cè)取新的中位值繼續(xù)對(duì)比
3, 小于中位值時(shí),以中位作為邊界,繼續(xù)在其左側(cè)取新的中位值繼續(xù)對(duì)比
4, 等于中位值時(shí),依次判斷其右側(cè)數(shù)值是否繼續(xù)相等,直到不相等時(shí)返回最后一個(gè)相等的數(shù)值
5, 當(dāng)中位位置與邊界重疊時(shí),中止對(duì)比,此時(shí)如果查找值大于中位值,則返回中位值;如果查找值小于中位值,則返回中位左側(cè)數(shù)值。如果左側(cè)數(shù)值不存在,返回#N/A
注:上面提到的“中位值”指的是目標(biāo)數(shù)組中位置居中的數(shù)據(jù)(數(shù)據(jù)個(gè)數(shù)為偶數(shù)時(shí),中位等于個(gè)數(shù)除以2;數(shù)據(jù)個(gè)數(shù)為奇數(shù)時(shí),中位等于<個(gè)數(shù)+1>除以2),與統(tǒng)計(jì)學(xué)上傳統(tǒng)意義上的中位值不完全相同
再配合下面兩張運(yùn)算過(guò)程圖加深理解:
最后,再提供一個(gè)自動(dòng)演示查找運(yùn)算過(guò)程的Excel文檔:
【excel中LOOKUP函數(shù)的二分法查找策略】相關(guān)文章:
關(guān)于Excel中vlookup函數(shù)的使用03-08
excel中if函數(shù)的使用方法04-26
vlookup函數(shù)在Excel中的使用方法03-02
EXCEL公式與函數(shù)教案12-13