Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.

Ähnliche Präsentationen


Präsentation zum Thema: "Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut."—  Präsentation transkript:

1 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut für Wirtschaftsinformatik- Software Engineering JKU Linz

2 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 2 Inhalt l Lösung Übung 7 l Komplexität von Algorithmen l Vorbesprechung Übung 9

3 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 3 Komplexität - Allgemeines Speicherkomplexität Laufzeitkomplexität Laufzeit = f(Problemgröße) typ. Größe der Datenmenge O-Notation gibt Obergrenze für Laufzeit an. Konstanten werden weggelassen (zb. f(2,43N+1) = O(N))

4 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 4 Laufzeitkomplexitäts-Klassen BezeichnungOWertungBeispiel konstante Komp.O(1)optimal, selten Hashing, Prepend Logarithmische K.O( log n )Sehr günstigBinäres Suchen Lineare Komp.O( n )GünstigLineares Suchen Leicht überlinearO(n log n)Noch gutGutes Sortierverfahren Quadratische K.O( n 2 )UngünstigSchlechtes Sortierverfahren Kubische K.O( n 3 )UngünstigMatrizenmultiplikation Exponentielle K.O( a n )KatastrophalRundreiseproblem

5 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 5 Mathem. Aussagen wenn P(n) ein Polynom m-ten Grades ist, so gilt: P(n) = O(n m ) a n wächst stärker als jedes Polynom -> kein polynomialer Algorithmus log n wächst schwächer als n, egal welche Basis

6 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 6 Laufzeitkomplexität nO(n)O(n2)O(2^n) 1 1 sec sec100 sec ca. 1 msec sec 10 msec4*10 6 Jahre msec1 sec3,4* Jahre

7 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 7 Laufzeitkomplexität (relativ kleine Werte)

8 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 8 Laufzeitkomplexität (relativ große Werte)

9 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 9 Laufzeit für einfache FOR-Schleifen for (i=1; i

10 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 10 Laufzeitkomplexität für geschachtelte For-Schleifen for (int i = 1..n) { for (int j = 1..n) { A } Laufzeitkomplexität O(n*n), also quadratisch

11 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 11 Geschachtelte FOR-Schleife mit variabler Obergrenze for (int i = 1..n) { for (int j = 1..i) { A } Laufzeitkomplexität O(n*n/2), also quadratisch

12 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 12 Schleife mit Teilung der Laufweite while (i < n) { n = n/2 i = i + 1; } Laufzeitkomplexität O(log 2 n), also logarithmisch

13 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 13 Rekursiver Algorithmus int fact(int n) { if (n == 0) return 1 else return n * fact(n-1) } Anzahl der Aufrufe n * Aufwand jeder Aktivierung k

14 Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 14 Rekursion 2 int doSomething(int a, int b) { // a < b if (a == b) return 0; else return (doSomething (a+1, b) – doSomething(a, b-1)) } Durch den zweifachen rekursiven Abstieg ergibt sich ein binärer Aufrufbaum ! Die Laufzeitkomplexität kann dabei exponentiell werden (2 N ). Dies hängt jedoch immer vom Ausmaß der Problemverkleinerung mit jedem zusätzlichen Rekursionsschritt ab. Für doSomething(0,3) ergeben sich (23+1 – 1) Aufrufe, da ein Binärbaum mit Höhe 4 entsteht. Laufzeitkomplexität O(2 N )


Herunterladen ppt "Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut."

Ähnliche Präsentationen


Google-Anzeigen