15.09.2014 Aufrufe

Effizienz von Algorithmen - Technische Fakultät - Universität Bielefeld

Effizienz von Algorithmen - Technische Fakultät - Universität Bielefeld

Effizienz von Algorithmen - Technische Fakultät - Universität Bielefeld

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.

<strong>Effizienz</strong> <strong>von</strong> <strong>Algorithmen</strong> Asymptotische <strong>Effizienz</strong>-Analyse Exkurs Beispiel zur Effizienanalyse Ausn<br />

Tree and back again. . .<br />

Für die Überführung <strong>von</strong> Listen in Bäume brauchen wir eine Funktion<br />

build :: [a] -> Tree a<br />

Und für die Überführung <strong>von</strong> Bäumen in Listen etwa<br />

leaves :: Tree a -> [a]<br />

53 / 130<br />

<strong>Effizienz</strong> <strong>von</strong> <strong>Algorithmen</strong> Asymptotische <strong>Effizienz</strong>-Analyse Exkurs Beispiel zur Effizienanalyse Ausn<br />

Naiver Ansatz für leaves, ganz entlang einer Strukturellen Rekursion<br />

auf Bäumen:<br />

leaves :: Tree a -> [a]<br />

leaves Nil = []<br />

leaves (Leaf a) = [a]<br />

leaves (Br l r) = leaves l ++ leaves r<br />

Betrachten wir einmal die Zahl der Rechenschritte unserer<br />

naiven Implementierung.<br />

wc-time leaves (n) = n 2<br />

Diese Funktion leaves ist also sehr teuer bezüglich der<br />

Rechenzeit.<br />

54 / 130

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!