Zusammenfassung in Powerpoint Format

Werbung
Datenstrukturen und Algorithmen
Zusammenfassung
Überblick
Ziel der Vorlesung:
Die Hörer in die Lage zu versetzen, für
gegebene Probleme passende Algorithmen und
Datenstrukturen auszuwählen und
gegebenenfalls neu zu entwerfen.
Dazu gehört Wissen über
• Entwurfsmethoden
• grundlegende Algorithmen und Datenstrukturen
• Wechselwirkung zwischen Datenstrukturen und Algorithmen
• Analyse von Algorithmen
Datenstrukturen und Algorithmen
2
Entwurfsmethoden
• Entwurfsmethoden für Algorithmen und Datenstrukturen
• Divide and Conquer (Quicksort, Mergesort, binäre
Suche, Karatsuba-Multiplikation, Strassens
Matrixmultiplikation)
• Greedy (Kruskal, Prim)
• dichte/dünne Repräsentation (Graphen:
Adjazensmatrix-Adjazenzlisten; Mengen:
charakteristischer Vektor, Elementliste)
• Randomisierung (Quicksort: Wahl des split-Elements,
skip-Listen: Wahl der Höhen, Hashing: universelle
Hashfunktion
Datenstrukturen und Algorithmen
3
Grundlegende Algorithmen
• Sortieralgorithmen
• Bubble, Insertion: average case
 n 2 
 n log n 
• Heap, Merge: worst case  n log n 
• Quick: average case
• Suchalgorithmen
• lineare Suche: average case
• binäre Suche: worst case
 n 
 log n 
Olog n 
OV log V  E log E 
• Mengenalgorithmen UNION-FIND
• Graphalgorithmen Kruskal
Datenstrukturen und Algorithmen
4
Grundlegende Datenstrukturen
• Priority Queue (Implementierung: Heap)
• Stack (Implementierung: Array oder Liste)
• FIFO-queue (Implementierung: ringförmiger Array)
• lineare Liste (Implementierung ggf. doppelt verkettet)
• Wörterbuch - mehrere Implementierungen:
O1   
• AVL-Bäume - worst case Olog n 
• Skip-Listen - erwartete Zeit Olog n 
• (a,b)-Bäume - Seitenzugriffe O log a n 
• Hash-Tabellen - erwartete Zeit
Datenstrukturen und Algorithmen
5
Algorithmen

Datenstrukturen
ungeordneter Array: lineare Suche
geordneter Array: binäre Suche
unbalancierter Suchbaum: worst case
balancierter Suchbaum: best case
Kruskal: Array
Prim: Priority Queue
Datenstrukturen und Algorithmen
6
Analyse
• Aufwandsmaße
• Rechenzeit,
• Speicherplatz,
• Zahl bestimmter Operationen
• Analyse der Aufwandsfunktionen
• Auflösung von Rekursionsformeln,
• Klassifikation im O-Kalkül
• Untere Schranken
• Vergleichsbasierte Sortierverfahren benötigen im worst-case
und im average case O n log n
Vergleiche.


• Achtung: BucketSort ist nicht vergleichsbasiert.
Datenstrukturen und Algorithmen
7
Eingabeklassen
Worst case, average case, best case:
• Addition von 1 im Binärsystem
• Quicksort
• Skip-Listen
Datenstrukturen und Algorithmen
8
Analyse
Mathematik
• Arithmetische Reihe 1  2    n  n(n  1) / 2


2
n
n 1
• geometrische Reihe 1  d  d    d  d  1 / d  1
• harmonische Reihe 1  1 / 2    1 / n  ln n
• Summe der Quadrate 12  22    n 2  n 3 / 3  n 2 / 2  n / 6
• Stirlingsche Formel
• Logarithmen
log n!  n log n  n log e
 log i  log n!
n
i 1
• Auflösung von Rekursionsformeln (Master Theorem)
Datenstrukturen und Algorithmen
9
O-Kalkül
f  O( g ) : C  0 n0 n  n0
f n   Cg(n)
f  ( g ) : g  O f 
f  ( g ) : f  O( g )  g  O f 
f  o( g ) : C  0 n0 n  n0
f n   Cg(n)
f   ( g ) : g  o( f )
Datenstrukturen und Algorithmen
10
Anwendungen...
Topologisches Sortieren
Komplexe Datenstruktur
• Array
• Liste
• Queue
Aufwand
O V  E 
Datenstrukturen und Algorithmen
11
...Anwendungen
Minimal spanning tree (Prim)
Priority Queue (Heap)
Aufwand
O E log E 
Minimal spanning tree (Kruskal)
UNION-FIND (Trees)
Aufwand
OV log V  E 
Datenstrukturen und Algorithmen
12
Probeklausur...
Aufgabe 1 (Algorithmus spielen)
Einfügen in einen (2,3)-Baum
Datenstrukturen und Algorithmen
13
...Probeklausur...
Aufgabe 2 (Algorithmus entwickeln und
analysieren)
Idee: Benachbarte Waggons können
vertauscht werden.
Also ist BubbleSort möglich.
Datenstrukturen und Algorithmen
14
...Probeklausur...
Aufgabe 3 (Datenstruktur entwickeln)
siehe Musterlösung im Netz.
Datenstrukturen und Algorithmen
15
...Probeklausur
Aufgabe 4 (Quickies)
Datenstrukturen und Algorithmen
16
Herunterladen