數據結構

插值搜索

插值搜索

插值搜索是一種在數組中搜索鍵的算法,該數組已按分配給鍵的數值排序。插值搜索是人們通過電話號碼搜索名字的一種類型。插值搜索是對實例的二進製搜索的改進,其中排序數組中的值是均勻分布的。二分查找總是到中間的元素進行檢查。另一方麵,插值搜索可以根據被搜索鍵的值去不同的位置。插值搜索通過計算探測位置來查找特定的項。最初,探測位置是集合中最中間的項的位置。如果匹配,則返回該項的索引。

下式是插值搜索中計算中間位置的公式。

中期=低+ ((x -(低))*(高-低)/((高)——(低)))

算法:

步驟1−開始搜索數據從列表中間開始。

步驟2−如果匹配,返回該項的索引,然後退出。

步驟3−如果不匹配,探測位置。

步驟4−使用探測公式對列表進行分割,找到新的中間。

步驟5−如果數據大於middle,則在更高的子列表中搜索。

步驟6−如果數據小於中間,則在下麵的子列表中搜索。

步驟7−重複操作,直到匹配為止。

Baidu
map