插值搜索是一種在數組中搜索鍵的算法,該數組已按分配給鍵的數值排序。插值搜索是人們通過電話號碼搜索名字的一種類型。插值搜索是對實例的二進製搜索的改進,其中排序數組中的值是均勻分布的。二分查找總是到中間的元素進行檢查。另一方麵,插值搜索可以根據被搜索鍵的值去不同的位置。插值搜索通過計算探測位置來查找特定的項。最初,探測位置是集合中最中間的項的位置。如果匹配,則返回該項的索引。
下式是插值搜索中計算中間位置的公式。
中期=低+ ((x -(低))*(高-低)/((高)——(低)))
算法:
步驟1−開始搜索數據從列表中間開始。
步驟2−如果匹配,返回該項的索引,然後退出。
步驟3−如果不匹配,探測位置。
步驟4−使用探測公式對列表進行分割,找到新的中間。
步驟5−如果數據大於middle,則在更高的子列表中搜索。
步驟6−如果數據小於中間,則在下麵的子列表中搜索。
步驟7−重複操作,直到匹配為止。