Interpolation search is an algorithm for searching sorted arrays that estimates the position of the search key. It improves on binary search by using linear interpolation to calculate a mid-point index closer to where the key may be found. Linear interpolation uses the difference between two known data points to estimate a value between them. Interpolation search first calculates a mid-point index based on the key's value relative to the array's minimum and maximum. It then adjusts the search range based on comparing the key to the value at the mid-point before recalculating a new mid-point. This allows it to potentially find the key in fewer comparisons than binary search, with a time complexity of O(log log n).