16.09.2017 Aufrufe

Vorkurs Informatik

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

214 12 Asymptotische Aufwandsanalyse<br />

Operationen werden in Form von Elementaroperationen gezählt. Elementaroperationen (EO)<br />

sind die Wertzuweisungen, Vergleiche, arithmetische Operationen und die Rückgabe des Werts<br />

einer Variablen. In der ersten Spalte der Tabelle ist der Algorithmus aufgeführt. Die zweite Spalte<br />

zeigt den Zeitaufwand pro Zeile. Die Anweisung i := i + 1 wird mit zwei Elementaroperationen<br />

gezählt: der Addition für die Erhöhung von i um 1 und die Wertzuweisung.<br />

In der dritten Spalte der Tabelle ist die Anzahl der Durchläufe der einzelnen Operationen aufgeführt.<br />

Offensichtlich werden die ersten beiden Anweisungen nur ein Mal durchgeführt. Das<br />

Gleiche gilt für die letzte Anweisung, die Rückgabe von merker. Die Anzahl der Durchführungen<br />

der solange-Schleife hängt von der Länge n der Eingabefolge ab. Der Rumpf der Schleife<br />

wird (n − 1)-mal ausgeführt. Die Durchführung der Zeile solange i < n erfolgt hingegen n-mal,<br />

da hier ein weiterer Test durchgeführt wird, der den Abbruch der Schleife bewirkt.<br />

Schwierigkeiten bereitet es, für die Wertzuweisung im dann-Teil der bedingten Anweisung, merker<br />

:= a i , die Anzahl der Durchläufe abzuschätzen. Hier kann es passieren, dass diese Anweisung<br />

überhaupt nicht ausgeführt wird. Das ist dann der Fall, wenn a 0 das kleinste Element der Folge<br />

ist. Andererseits kann es passieren, dass die Anweisung bei jedem Schleifendurchlauf ausgeführt<br />

wird. Dies geschieht, wenn die Eingabefolge fallend angeordnet ist. Die Anzahl der Durchläufe<br />

kann damit zwischen 0 und n − 1 liegen.<br />

Das Zusammenzählen der Elementaroperationen aus der Tabelle zeigt, dass im günstigsten Fall<br />

T min (n)=4n Elementaroperationen benötigt werden, während im ungünstigsten Fall T max (n)=<br />

5n − 1 Elementaroperationen ausgeführt werden.<br />

Wir wollen dies nun verallgemeinern. Sei A(e) der Aufwand des zu analysierenden Algorithmus<br />

bei der Eingabe e ∈ E, wobei E die Menge aller Eingaben des Algorithmus umfasst. A(e) kann<br />

dabei für den Zeitaufwand, aber beispielsweise auch für den Speicheraufwand stehen.<br />

Da davon auszugehen ist, dass der Aufwand mit wachsender Größe der Eingabe wächst, ist<br />

es zweckmäßig, den Aufwand abhängig von der Eingabegröße zu analysieren. Die Eingabegröße<br />

wird in der Anzahl der Elementardateneinheiten gemessen. So besteht die Eingabe<br />

a 0 ,a 1 ,...,a n−1 des Minimumsuche-Algorithmus aus n Zahlen, die als Elementardateneinheiten<br />

verstanden werden. Die Länge der Eingabe ist in diesem Fall also n.<br />

Sei E n die Menge aller Eingaben der Länge n, d.h.<br />

E n := {e in E | die Größe von e ist n}.<br />

Der maximale Aufwand A max (n), auch als Aufwand im schlechtesten Fall oder worst-case-<br />

Aufwand bezeichnet, ist der größte Aufwand, der bei einer Eingabe e der Länge n auftreten<br />

kann, d.h.<br />

A max (n):= max { A(e) | e in E n }.<br />

Entsprechend ist der minimale Aufwand A min (n) der Aufwand A(e) einer Eingabe e mit kleinstem<br />

Aufwand:<br />

A min (n):= min { A(e) | e in E n }.<br />

Für den Zeitaufwand wird anstelle von A häufig T, für den Speicheraufwand S geschrieben.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!