05.08.2013 Aufrufe

Praktische Grenzen der Berechenbarkeit - Informatik

Praktische Grenzen der Berechenbarkeit - Informatik

Praktische Grenzen der Berechenbarkeit - Informatik

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

im ungünstigsten Fall<br />

tseq(n) = 2 + n · (1 + 1 + 2)<br />

= 4n + 2<br />

tseq ∈ O(n)<br />

Die Funktionsweise <strong>der</strong> binären Suche (Abbildung 6), die wir als nächstes<br />

untersuchen, wird oft am Beispiel <strong>der</strong> Suche in einem Telefonbuch verdeutlicht,<br />

obwohl <strong>der</strong> Vergleich hinkt. Es wird zunächst <strong>der</strong> Index des mittleren Feldelementes<br />

bestimmt. Wird die gesuchte Zahl an dieser Stelle gefunden, ist die Suche<br />

beendet. An<strong>der</strong>nfalls wird auf die gleiche Art in <strong>der</strong> linken bzw. rechten Hälfte<br />

weiter gesucht, je nach Größe <strong>der</strong> zuletzt mit dem Suchschlüssel verglichenen Zahl.<br />

Ist die Anzahl <strong>der</strong> Elemente im aktuell zu durchsuchenden Feldbereich gerade,<br />

wird <strong>der</strong> größte Feldindex <strong>der</strong> linken Hälfte als Mittelwert verwendet.<br />

Algorithmus Binäre Suche<br />

(Gegeben: Ein sortiertes n-dimensionales Feld a<br />

und ein Suchschlüssel s)<br />

begin<br />

gefunden←false<br />

l←1<br />

r←n<br />

repeat<br />

m←(l+r) div 2<br />

if a[m]=s then<br />

gefunden←true<br />

if a[m]>s then<br />

r←m-1<br />

if a[m]r<br />

end<br />

Abbildung 6: Algorithmus Binäre Suche<br />

Dadurch ergeben sich maximal ⌈log 2 n⌉ Durchläufe <strong>der</strong> Repeat–Schleife (Hier<br />

gibt ⌈log 2 n⌉ den Logarithmus <strong>der</strong> auf n folgenden Zweierpotenz an, falls log 2 n<br />

nicht ganzzahlig ist). Innerhalb <strong>der</strong> Schleife sind jeweils drei Vergleiche und zwei<br />

Wertzuweisungen zu bearbeiten. Zusammen mit den drei Zuweisungen am Anfang,<br />

die lediglich <strong>der</strong> Initialisierung <strong>der</strong> Variablen dienen, ergibt sich als Zeit-<br />

10

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!