Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Algorithmen und Datenstrukturen 1 SS 2002

Ähnliche Präsentationen


Präsentation zum Thema: "Algorithmen und Datenstrukturen 1 SS 2002"—  Präsentation transkript:

1 Algorithmen und Datenstrukturen 1 SS 2002
Mag.Thomas Hilpold Institut für Wirtschaftsinformatik Software Engineering JKU Linz Termin 9 – Laufzeitkomplexität

2 Übersicht Lösung Übung 7 Themenbereiche heute Laufzeitkomplexität
Übungsbesprechung Übung 9

3 Lösung Ü7 User: integer erwartet, String eingegeben
Device: Hardware Fehler: Printer ausgeschaltet, Festplatte defekt, Web-page kurzfristig nicht erreichbar Physical: Disk full, Mem full Code errors: Eine Methode wird inkorrekt ausgeführt, ungültiger Array index

4 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

5 Komplexität Beispiele für Laufzeitkomplexität Bezeichnung O Wertung
konstante Komp. O(1) optimal, selten Hashing, Prepend Logarithmische K. O( log n ) Sehr günstig Binäres Suchen Lineare Komp. O( n ) Günstig Lineares Suchen Leicht überlinear O(n log n) Noch gut Gutes Sortierverfahren Quadratische K. O( n2 ) Ungünstig Schlechtes Sortierverfahren Kubische K. O( n3 ) Matrizenmultiplikation Exponentielle K. O( an ) Katastrophal Rundreiseproblem

6 Komplexität einige Aussagen
wenn P(n) ein Polynom m. Grades ist, so gilt P(n) = O(nm) an wächst stärker als jedes Polynom -> kein polynomialer Algorithmus log n wächst schwächer als n, egal welche Basis

7 Laufzeitkomplexität Beispiele n O(n) O(n2) O(2^n) 1 1 sec 10 10 sec
ca. 1 msec 100 10 msec 4*106 Jahre 1000 1 msec 1 sec 3,4*10286 Jahre

8 Laufzeitkomplexität grafische Darstellung (kleine Problemgrößen)

9 Laufzeitkomplexität grafische Darstellung (große Problemgrößen)

10 Bestimmen der Laufzeitkomplexität
For - Schleife Annahme: eine Operation A hat einen konstanten Zeitbedarf. Die Laufzeit für A soll also unabhängig von den Werten der Laufvariablen sein. for (int i = 1..n) { A } Laufzeitkomplexität: O(N), Linear

11 Bestimmen der Laufzeitkomplexität
For – Schleife (2) for (int i = 1..n) { for (int j = 1..n) { A } O(N2), quadratisch Laufzeitkomplexität:

12 Bestimmen der Laufzeitkomplexität
For – Schleife (3) geschachtelt, innere Schleife hat variable Obergrenze for (int i = 1..n) { for (int j = 1..i) { A } Laufzeitkomplexität: ???

13 Bestimmen der Laufzeitkomplexität
For – Schleife (3) geschachtelt, innere Schleife hat variable Obergrenze for (int i = 1..n) { for (int j = 1..i) { A } Laufzeitkomplexität: ???

14 Bestimmen der Laufzeitkomplexität
binäre suche while (i <n) { n = n/2 i = i + 1; } Obergrenze halbiert sich bei jedem Schleifendurchlauf. log(n) Durchläufe = O(log(n)).

15 Bestimmen der Laufzeitkomplexität
an der Tafel

16 Übung 9 ad 1) Feinanalyse – Suchverfahren analog zur Vorlesung
ad 2) asymptotische Laufzeitkomplexität - praktische Betrachtung gegeben O-Notation, Zeit für n = 10; zu berechnen für mehrere n ad 3) Grobanalyse asymptotische Laufzeitkomplexität für einen iterativen und einen rekursiven Algorithmus. gesucht: Anzahl der Schleifendruchläufe, Anzahl der rek. Aufrufe, z.B. Aufrufbaum überlegen, Anzahl der Knoten. ad 4) 2 Algorithmen zum Potenzieren


Herunterladen ppt "Algorithmen und Datenstrukturen 1 SS 2002"

Ähnliche Präsentationen


Google-Anzeigen