Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Adalwolfa Stucke Geändert vor über 9 Jahren
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.