05.11.2013 Aufrufe

Handout - Institut für Theoretische Informatik - Technische ...

Handout - Institut für Theoretische Informatik - Technische ...

Handout - Institut für Theoretische Informatik - Technische ...

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.

6. Komplexität von Algorithmen 6.1 Beispiele effizienter Algorithmen<br />

Beispiel (Fortsetzung)<br />

Gesamtlaufzeit: T (n, k) = 4A(n + k) + 2A(n + 1) ∈ O(n + k) .<br />

Die FOR-Schleifen in Zeilen 6 und 7 garantieren nur in dieser Reihenfolge<br />

eine Laufzeit von A · k in Zeile 10. Bei umgekehrter Reihenfolge, oder<br />

Verwendung von Adjazenzmatrizen, ergäbe sich hier A · n 2 . Ein ähnliches<br />

Argument liefert <strong>für</strong> die FOR-Schleife in Zeile 20 innerhalb der<br />

WHILE-Schleife in Zeile 18 den Term 3A · k in Zeile 26. Im Falle von<br />

Adjazenzmatrizen stünde hier 3A · n 2 .<br />

Damit wäre bei Verwendung von Adjazenzmatrizen die Laufzeit gegeben<br />

durch T (n) = 4A · (n + n 2 ) + 2A · (n + 1) ∈ O(n 2 ) .<br />

Bei der Bestimmung der Effizienz kommt es also darauf an, wie man die<br />

Größe der Eingabe definiert: Hinsichtlich der Knotenzahl |V | läuft der<br />

Algorithmus mit Adjazenzmatrizen in quadratischer Zeit, verglichen mit<br />

kubischer Zeit des naiven Algorithmus. Hinsichtlich der Summe |V | + |E|<br />

läuft der obige Algorithmus in linearer Zeit.<br />

Jürgen Koslowski (TU-BS) <strong>Theoretische</strong> <strong>Informatik</strong> 2 SS 2012 111 / 215

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!