- 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
Die Funktionsweise der geometrischen Suche wird durch folgenden Algorithmus skizziert:
Eingabe: Array a, gesuchtes Element x
Sei n dazu die Länge des Arrays a:
- Setze i: = 0.
- Falls n < 2i, durchsuche den Bereich von 2i − 1 + 1 bis n mit binärer Suche.
- Falls : Durchsuche den Bereich 2i − 1 + 1 bis 2i mit binärer Suche.
- Falls x > a[2i]: Setze i: = i + 1 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 log n wesentliche Vergleiche benötigt, genauso wie im zweiten Teil (binäre Suche). Zusammen ergibt sich eine Worst Case-Rechenzeit von .
Wikimedia Foundation.