當前位置:才華齋>計算機>office辦公>

excel中LOOKUP函式的二分法查詢策略

office辦公 閱讀(4.76K)

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

excel中LOOKUP函式的二分法查詢策略

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

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

首先是演算法文字描述:

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

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

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

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

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

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

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

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