糯米文學吧

位置:首頁 > 計算機 > office辦公

excel中LOOKUP函數的二分法查找策略

二分法查找又稱折半查找,它是一種效率較高的查找算法。二分法通常要求目標數組中的數據是有序排列的'。LOOKUP函數所使用的查找策略就是二分法,不僅僅是LOOKUP,其實VLOOKUP/HLOOKUP函數在其第四參數為True時、MATCH函數在其第三參數為1時也都是遵循了二分法的查找原則來進行運算的。

excel中LOOKUP函數的二分法查找策略

二分法的具體方法,通常會通過下面這個流程圖來表達:

但流程圖過於抽象,為了讓這個查找過程更容易理解,嘗試使用其他方法再進行一些解讀

首先是算法文字描述:

1, 將查找值與目標向量中的“中位值”進行對比

2, 大於中位值時,以中位作為邊界,繼續在其右側取新的中位值繼續對比

3, 小於中位值時,以中位作為邊界,繼續在其左側取新的中位值繼續對比

4, 等於中位值時,依次判斷其右側數值是否繼續相等,直到不相等時返回最後一個相等的數值

5, 當中位位置與邊界重疊時,中止對比,此時如果查找值大於中位值,則返回中位值;如果查找值小於中位值,則返回中位左側數值。如果左側數值不存在,返回#N/A

注:上面提到的“中位值”指的是目標數組中位置居中的數據(數據個數為偶數時,中位等於個數除以2;數據個數為奇數時,中位等於<個數+1>除以2),與統計學上傳統意義上的中位值不完全相同

再配合下面兩張運算過程圖加深理解:

最後,再提供一個自動演示查找運算過程的Excel文檔: