Obviamente, para fazer uma pesquisa de interpolação, você precisa de algum tipo de chave para a qual sejam conhecidas mais do que pedidos - você deve poder fazer cálculos nas teclas para estimar uma distância provável, não apenas comparar chaves para determinar qual é maior ou menor.
No que diz respeito às propriedades do conjunto de dados, trata-se principalmente de uma propriedade: uma probabilidade de que as chaves sejam razoavelmente uniformes (ou pelo menos previsíveis) distribuídas por toda a gama de possibilidades. Sem isso, uma pesquisa de interpolação pode realmente ser mais lenta que uma pesquisa binária.
Por exemplo, considere um conjunto de dados com cadeias de letras minúsculas como chaves. Vamos supor que você tenha uma chave que comece com "x". Uma pesquisa de interpolação indicará claramente que você deve começar a pesquisar muito perto do final do conjunto. Se, no entanto, a maioria de suas chaves começar com 'z' e quase nenhuma com algo de 'a' a 'y', a que você está procurando pode estar muito perto do início do conjunto. Pode / pode levar um número considerável de iterações antes que a pesquisa chegue perto do início em que a sequência iniciada por 'w' reside. Cada iteração removeria apenas ~ 10% do conjunto de dados da consideração; portanto, levaria várias iterações antes de chegar perto do início, onde as chaves que começam com 'w'
Por outro lado, uma pesquisa binária começaria no meio, alcançaria a marca de um quarto na segunda iteração, a oitava marca na terceira e assim por diante. Seu desempenho não seria afetado pela distorção nas teclas. Cada iteração removeria metade do conjunto de dados da consideração, como se as chaves fossem distribuídas igualmente.
Apresso-me a acrescentar, no entanto, que realmente é necessária uma distribuição bastante distorcida para tornar uma pesquisa de interpolação visivelmente pior do que uma pesquisa binária. Pode, por exemplo, ter um desempenho muito bom, mesmo na presença de uma quantidade razoável de armazenamento em cluster localizado.
Também devo mencionar que uma pesquisa de interpolação não precisa necessariamente usar interpolação linear. Por exemplo, se suas chaves seguem uma distribuição não linear (por exemplo, uma curva em sino), torna-se bastante fácil levar isso em consideração na função de interpolação para obter resultados um pouco diferentes de uma distribuição uniforme.