20 - Data Structure - Interpolation Search
20 - Data Structure - Interpolation Search
Search
Binary search has a huge advantage of time complexity over linear search.
Linear search has worst-case complexity of Ο(n) whereas binary search has
Ο(log n).
There are cases where the location of target data may be known in advance.
For example, in case of a telephone directory, if we want to search the
telephone number of Morphius. Here, linear search and even binary search will
seem slow as we can directly jump to memory space where the names start
from 'M' are stored.
In binary search, if the desired data is not found then the rest of the list is
divided in two parts, lower and higher. The search is carried out in either of
them.
Even when the data is sorted, binary search does not take advantage to probe
the position of the desired data.
Where −
A = list
If the middle item is greater than the item, then the probe position is again
calculated in the sub-array to the right of the middle item. Otherwise, the item
is searched in the subarray to the left of the middle item. This process
continues on the sub-array as well until the size of subarray reduces to zero.
Algorithm
Step 4 − Divide the list using probing formula and find the new midle.
Pseudocode
A → Array list
N → Size of A
X → Target Value
Procedure Interpolation_Search()
Set Lo → 0
Set Mid → -1
Set Hi → N-1
end if
if A[Mid] = X
else
if A[Mid] < X
Set Lo to Mid+1
Set Hi to Mid-1
end if
end if
End While
End Procedure