13SS_6b_PG1_Algorithmen_Datenstrukturen_Suchen_Sortieren_Stud_01_21.pdf
13SS_6b_PG1_Algorithmen_Datenstrukturen_Suchen_Sortieren_Stud_01_21.pdf
13SS_6b_PG1_Algorithmen_Datenstrukturen_Suchen_Sortieren_Stud_01_21.pdf
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Komplexität der binären Suche<br />
FB Informatik<br />
Prof. Dr. R.Nitsch<br />
Aufwandsabschätzung für binäre Suche<br />
• Jede Iteration benötigt die Zeit 3<br />
• Jede Iteration halbiert den Suchbereich<br />
Nach dem 1. Halbieren enthält Suchbereich noch n/2 = n/2 1 Elemente<br />
Nach dem 2. Halbieren enthält Suchbereich noch n/4 = n/2 2 Elemente<br />
…<br />
Nach dem R-ten Halbieren enthält Suchbereich noch n/2 R Elemente<br />
• Worst case: Suche endet, wenn Suchbereich nur noch 1 Element enthält!<br />
n<br />
2 R = 1 R = log 2(n) Wiederholungen Zeitkomplexität T(n) = R(n)·3+2= log 2 (n) · 3 + 2<br />
d.h. die Zeitkomplexität wächst logarithmisch mit n<br />
Dies bringt man abkürzend durch die "Big-O"-Notation zum Ausdruck: Zeitkomplexität = O( log n )<br />
Ergebnis: In sortierten Reihen kann wesentlich schneller gesucht werden!<br />
Beispiel: Laufzeitvergleich<br />
lineare ↔ binäre Suche<br />
(gemessene Werte:<br />
Intel X86 Prozessor, 1,66 GHz,<br />
Debug-Konfiguration)<br />
n O(n) O(log n)<br />
1000 2,6 us 0,1 us = 0,033 us • 3<br />
10 6 2,6 ms 0,2 us = 0,033 us • 6<br />
10 9 2,6 s 0,3 us = 0,033 us • 9<br />
20.06.2<strong>01</strong>3 8