Interpolationssuche

E

enidmelanie

Hallo!

Könnte mir vielleicht jemand bitte die in der Interpolationssuche verwendete Formel erklären?

Vielen Dank,

Melanie
 
;o) ne, ich meine die Formel, mit der das "mittlere" Element berechnet wird - das aber halt nicht das mittlere ist (wie etwa bei der binären Suche).
 
allerdings steht da in deinem Link auch etwas darüber.... ich schau mir das erst mal an und melde mich dann nochmal!

Danke schon mal... hatte bisher immer nur die Formel ohne Erläuterung, WIE diese zustande kommt, gefunden.

Melanie
 
also, klarer ist mir das noch immer nicht.


Irgendwie wird das auch überall anders erklärt.

Ursprünglich meinte ich folgende Formel:

l + ((x-a[l]) * (r-l)) / (a[r] - a[l])

wobei l = erster Platz im Feld (meist 0)
r = letzter Platz im Feld
a[l]= erstes Element im Array
a[r]= letztes Element im Array
x = gesuchtes Element

Was hiermit gemeint ist, ist mir auch nicht ganz klar:



"Für alle Daten lässt sich die Teilungsposition berechnen, indem zunächst die Anzahl aller Elemente durch die Anzahl verschiedener Elemente dividiert wird, und Anschließend mit dem gesuchten Schlüssel multipliziert wird: Die Position des gesuchten Elementes wird somit interpoliert, indem die Gleichverteilung der Daten für eine Abbildung des Schlüssels auf die Liste bzw. das Feld genutzt wird. "

und was genau passiert, wenn das berechnete Element nicht dem gesuchten entspricht?

Ich habe zwei Varianten entdeckt:

1. je nachdem, ob x < oder > ist, um eins erhöhen bzw. verringern und wieder prüfen

2. wie oben, aber dann ein neuen Feld anlegen mit dem Teilbereich und ein neues Element anhand obiger Formel errechnen....


*verwirr*
 

Neue Beiträge

Zurück