Geometrische Suche
Die geometrische Suche ist ein Suchalgorithmus, der in einem sortierten Array die Position eines gesuchten Wertes ermittelt bzw. feststellt, dass der Wert nicht im Array enthalten ist. Die geometrische Suche wird vor allem dann eingesetzt, wenn man davon ausgeht, dass sich der gesuchte Wert eher im vorderen Teil des Arrays befindet. Der Name ergibt sich aus der verwendeten geometrischen Folge.
Beschreibung[Bearbeiten]
Die Funktionsweise der geometrischen Suche wird durch folgenden Algorithmus skizziert:
Eingabe: Array , gesuchtes Element
Sei dazu die Länge des Arrays :
- Setze .
- Falls , durchsuche den Bereich von bis mit binärer Suche.
- Falls : Durchsuche den Bereich bis mit binärer Suche.
- Falls : Setze und fahre mit 2. fort.
Der Suchraum wird also verkleinert, indem nacheinander die Positionen betrachtet werden. Auf dem verkleinerten Suchraum wird die gesuchte Position dann mit binärer Suche ermittelt.
Im Worst Case befindet sich das gesuchte Element an der letzten Arrayposition. Im ersten Teil des Algorithmus (Vergleiche mit ) werden dann wesentliche Vergleiche benötigt, genauso wie im zweiten Teil (binäre Suche). Zusammen ergibt sich eine Worst-Case-Rechenzeit von .
Diese artikel "Geometrische Suche" ist von Wikipedia The list of its authors can be seen in its historical.