Algorithmen und Datenstrukturen SS 2005

Slides:



Advertisements
Ähnliche Präsentationen
Schwierigkeit von Aufgabenstellungen
Advertisements

O-Notation in der Informatik
Dr. Brigitte Mathiak Kapitel 10 Physische Datenorganisation.
G.Heyer Algorithmen und Datenstrukturen II 1 Algorithmen und Datenstrukturen II Wintersemester 2000 / 2001 Prof. Dr. Gerhard Heyer Institut für Informatik.
3. Kapitel: Komplexität und Komplexitätsklassen
5. Sortier-Algorithmen Vorbemerkungen:
2. Kapitel: Komplexität und Komplexitätsklassen
Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sommersemester 2004.
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
Algorithmentheorie 02 – Polynomprodukt und Fast Fourier Transformation
Funktionenklassen zur Messung der Komplexität
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Halbzeit: Kurze Wiederholung
Sortieren vorsortierter Daten
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Institut für Kartographie und Geoinformation Dipl.-Ing. J. Schmittwilken Diskrete Mathe II Übung
Diskrete Mathematik I Vorlesung 9b AVL-Baum, Algorithmen.
Algorithmische Geometrie
Christian Schindelhauer
Algorithmen des Internets 2005 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität 1 Materialien zu Übung 9 Bälle in Körbe Ranged.
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Suchen & Sortieren mit Arrays.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 4 Dr. W. Narzt u. Dr. A. Stritzinger.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Effiziente Algorithmen
Einführung in die Programmierung
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut für Wirtschaftsinformatik- Software Engineering JKU Linz.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Christian Mansky Design - Fallstudien Christian Mansky
Algorithmen und Datenstrukturen Übungsmodul 6
Algorithmen und Datenstrukturen Übungsmodul 10
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen 1 SS 2007 Dr. W. Narzt u. Dr. A. Stritzinger Institut.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 5 Dr. W. Narzt u. Dr. A. Stritzinger.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Programmierpraktikum Java SS 2005
Algorithmen und Datenstrukturen Übungsmodul 8
Algorithmen und Datenstrukturen Übungsmodul 11
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Thomas Hilpold: Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger.
Algorithmen und Datenstrukturen SS 2005
Algorithmen und Datenstrukturen Übungsmodul 1
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 2 Dr. W. Narzt u. Dr. A. Stritzinger.
Algorithmen und Datenstrukturen Übungsmodul 3
Externspeicher- Algorithmen:Teil 2
Externspeicher- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2.
Komplexität von Algorithmen
Das Traveling Salesman Problem (TSP)
Algorithmen und Datenstrukturen 1 SS 2002
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Algorithmen und Datenstrukturen 1 SS 2002
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Algorithmen und Datenstrukturen 1 SS 2002
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen 1 SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
„Inside CAS“ Teil I: Polynome faktorisieren Teil II: Automatisches Beweisen Heinz Klemenz, KZO Wetzikon,
Allgemeine Formulierung des Suchproblems
 Präsentation transkript:

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

Inhalt Lösung Übung 7 Komplexität von Algorithmen Vorbesprechung Übung 9

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))

Laufzeitkomplexitäts-Klassen Bezeichnung O Wertung Beispiel 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

Mathem. Aussagen wenn P(n) ein Polynom m-ten 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

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

Laufzeitkomplexität (relativ kleine Werte)

Laufzeitkomplexität (relativ große Werte)

Laufzeit für einfache FOR-Schleifen for (i=1; i<n; i++) { A } Unter der Annahme, dass A konstante Laufzeit aufweist, ist die Laufzeitkomplexität O(n), also linear.

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

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

Schleife mit Teilung der Laufweite while (i < n) { n = n/2 i = i + 1; } Laufzeitkomplexität O(log2n), also logarithmisch

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

int doSomething(int a, int b) { // a < b if (a == b) return 0; 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 (2N). 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(2N)