This depend entirely on being able to do the interpolation on your keys. He computes:<p><pre><code> offset = (key - min) / (max - min)
</code></pre>
but not all data can have arithmetic done on it like that. What if the data in your array are, for example, names?<p>It's pretty trivial to beat binary search if your data are integers, or other keys on which you can do arithmetic. You can make the uniform distribution assumption, check it as you go, degrade to binary search if the assumption seems flawed, and then proceed from there.<p>However, if you're given an array of unknown objects, a comparison function, and no way to do arithmetic on your objects, you can't beat binary search.