Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
|
|
- Jens Kaufer
- vor 5 Jahren
- Abrufe
Transkript
1 Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1
2 Geometrisches Problem: Problem: Nächstes Paar Eingabe: n Punkte in der Ebene Ausgabe: Das Paar q,r mit geringstem Abstand Beispiel: 2
3 Geometrisches Problem: Problem: Nächstes Paar Eingabe: n Punkte in der Ebene Ausgabe: Das Paar q,r mit geringstem Abstand Beispiel: 3
4 Notation: d(q,r) bezeichnet Abstand zwischen q und r 4
5 Notation: d(q,r) bezeichnet Abstand zwischen q und r q d(q,r) r 5
6 Plan für 2D: Wie MergeSort nur im 2D 6
7 Plan: Wie MergeSort nur im 2D Sortiere Punktmenge nach x-koordinate 7
8 Plan: Wie MergeSort nur im 2D Sortiere Punktmenge nach x-koordinate Teile in der Mitte Q R 8
9 Plan: Wie MergeSort nur im 2D Sortiere Punktmenge nach x-koordinate Teile in der Mitte Löse rekursiv R Q q* 2 q* 1 r* r* 2 1 9
10 Plan: Wie MergeSort nur im 2D Sortiere Punktmenge nach x-koordinate Teile in der Mitte Löse rekursiv Füge zusammen Q R q* 1 q* 2 r* r*
11 Plan: Wie MergeSort nur im 2D Sortiere Punktmenge nach x-koordinate Teile in der Mitte Löse rekursiv Füge zusammen Q Wir wissen: (q*,q*) ist nächstes Paar in Q. 1 2 q* 1 q* 2 11
12 Plan: Wie MergeSort nur im 2D Sortiere Punktmenge nach x-koordinate Teile in der Mitte Löse rekursiv Füge zusammen RWir wissen: (r*,r*) ist nächstes Paar in R. 1 2 L r* r*
13 Plan: Wie MergeSort nur im 2D Sortiere Punktmenge nach x-koordinate Teile in der Mitte Löse rekursiv Füge zusammen Q q* 1 q* 2 Wir wissen nicht: Gibt es Paare (q,r) mit q Q und r R, Rdie nah beieinander liegen?? r* r*
14 Plan: Wie MergeSort nur im 2D Sortiere Punktmenge nach x-koordinate Teile in der Mitte Löse rekursiv Füge zusammen Problem: Es gibt sehr viele solche Paare. (Θ(n²) viele). Q q* 1 q* 2 Wir wissen nicht: Gibt es Paare (q,r) mit q Q und r R, Rdie nah beieinander liegen?? r* r*
15 Plan: Wie MergeSort nur im 2D Sortiere Punktmenge nach x-koordinate Teile in der Mitte Löse rekursiv Füge zusammen Problem: Es gibt sehr viele solche Paare. (Θ(n²) viele). Q q* 1 q* 2 Wir wissen nicht: Gibt es Paare (q,r) mit q Q und r R, Rdie nah beieinander liegen?? r* r* 2 1 Zeige: Es genügt O(n) geschickt gewählte Paare zu testen. 15
16 Definition: = min{d(q*, q* ), d(r*, r* )} Q R q* 1 q* 2 L r* 1 r* 2 16
17 Wichtige Beobachtung: Sind q,r Q, dann gilt d(p,r). Sind q,r R, dann gild d(p,r). Q R q* 1 q* 2 L r* r*
18 Lemma 7 Gibt es q Q und r R mit d(q,r) <, dann sind sowohl q als auch r höchstens von L entfernt. Q R q* 1 q* 2 L r* r*
19 Lemma 7 Gibt es q Q und r R mit d(q,r) <, dann sind sowohl q als auch r höchstens von L entfernt. Q R q* 1 q* 2 L r* r*
20 Was gewinnen wir? Alle Punkte können nahe an L liegen Q R q* 1 q* 2 L r* r*
21 Abhilfe: Wir wollen nur Paare (q,r) testen, wenn (a) q und r nah an L liegen und (b) q und r kleinen Abstand in y-richtung haben Q R q* 1 q* 2 L r* r*
22 Idee: Sortiere nahe Punkte nach y-koordinate Zeige: Liegen in dieser Sortierung mehr als c Punkte zwischen q und r, dann kann (q,r) nicht nächstes Paar sein q* 1 q* 2 r* r*
23 Idee: Sortiere nahe Punkte nach y-koordinate Zeige: Liegen in dieser Sortierung mehr als c Punkte zwischen q und r, dann kann (q,r) nicht nächstes Paar sein q q* 1 q* 2 r* r* c Punkte 1 2 dazwischen: Wir brauchen (q,r) nicht testen r 23
24 Idee: Sortiere nahe Punkte nach y-koordinate Zeige: Liegen in dieser Sortierung mehr als c Punkte zwischen q und r, dann kann (q,r) nicht nächstes Paar sein q q* 1 q* 2 r* r* c Punkte 1 2 dazwischen: Wir brauchen (q,r) nicht testen r Für welchen Wert c können wir dies zeigen? 24
25 Lemma 8 Liegen in der Sortierung mindestens 15 Punkte zwischen q und r, dann ist d(q,r) >. q* 1 q* 2 r* r*
26 Lemma 8 Liegen in der Sortierung mindestens 15 Punkte zwischen q und r, dann ist d(q,r) >. Beweis: Teile Nahbereich in Quadrate der Seitenlänge /2 auf Beh.: In jedem Quadrat ist nur ein Punkt. /2 /2 L 26
27 Lemma 8 Liegen in der Sortierung mindestens 15 Punkte zwischen q und r, dann ist d(q,r) >. Beweis: Teile Nahbereich in Quadrate der Seitenlänge /2 auf Beh.: In jedem Quadrat ist nur ein Punkt. Beweis: Annahme: Zwei Punkte q,r in einem Quadrat /2 /2 L 27
28 Lemma 8 Liegen in der Sortierung mindestens 15 Punkte zwischen q und r, dann ist d(q,r) >. Beweis: Teile Nahbereich in Quadrate der Seitenlänge /2 auf Beh.: In jedem Quadrat ist nur ein Punkt. Beweis: Annahme: Zwei Punkte q,r in einem Quadrat Dann ist d(q,r) 2/2 < /2 /2 L 28
29 Lemma 8 Liegen in der Sortierung mindestens 15 Punkte zwischen q und r, dann ist d(q,r) >. Beweis: Teile Nahbereich in Quadrate der Seitenlänge /2 auf Beh.: In jedem Quadrat ist nur ein Punkt. Beweis: Annahme: Zwei Punkte q,r in einem Quadrat Dann ist d(q,r) 2/2 < /2 /2 Ein Quadrat ist entweder komplett links oder rechts von L. Also sind q,r beide in Q oder beide in R. Damit gilt d(q,r). L 29
30 Lemma 8 Liegen in der Sortierung mindestens 15 Punkte zwischen q und r, dann ist d(q,r) >. Beweis: Seien mind. 15 Punkte zwischen q und r L /2 /2 30
31 Lemma 8 Liegen in der Sortierung mindestens 15 Punkte zwischen q und r, dann ist d(q,r) >. Beweis: Seien mind. 15 Punkte zwischen q und r L Zwischen den beiden roten Punkten liegen 15 andere Punkte /2 /2 31
32 Lemma 8 Liegen in der Sortierung mindestens 15 Punkte zwischen q und r, dann ist d(q,r) >. Beweis: Seien mind. 15 Punkte zwischen q und r Dann sind mindestens 3 Reihen Quadrate zwischen q,r, weil in jedem Quadrat höchstens ein Punkt ist /2 /2 L 32
33 Lemma 8 Liegen in der Sortierung mindestens 15 Punkte zwischen q und r, dann ist d(q,r) >. Beweis: Seien mind. 15 Punkte zwischen q und r Dann sind mindestens 3 Reihen Quadrate zwischen q,r, weil in jedem Quadrat höchstens ein Punkt ist Dann muss d(q,r) mindestens 3/2 > sein /2 /2 L 33
34 Der Algorithmus im Überblick: Teile Punktmenge an Linie L in Q und R auf 34
35 Der Algorithmus im Überblick: Teile Punktmenge an Linie L in Q und R auf Q L R 35
36 Der Algorithmus im Überblick: Teile Punktmenge an Linie L in Q und R auf Löse Problem rekursiv auf Q und R Q L R 36
37 Der Algorithmus im Überblick: Teile Punktmenge an Linie L in Q und R auf Löse Problem rekursiv auf Q und R Sortiere Punkte mit Abstand zu L höchstens nach y-koord. Q L R 37
38 Der Algorithmus im Überblick: Teile Punktmenge an Linie L in Q und R auf Löse Problem rekursiv auf Q und R Sortiere Punkte mit Abstand zu L höchstens nach y-koord. Teste alle Paare, deren Abstand in der Sortierung kleiner als 16 ist Q L R 38
39 Der Algorithmus im Überblick: Teile Punktmenge an Linie L in Q und R auf Löse Problem rekursiv auf Q und R Sortiere Punkte mit Abstand zu L höchstens nach y-koord. Teste alle Paare, deren Abstand in der Sortierung kleiner als 16 ist Q L R 39
40 Der Algorithmus im Überblick: Teile Punktmenge an Linie L in Q und R auf Löse Problem rekursiv auf Q und R Sortiere Punkte mit Abstand zu L höchstens nach y-koord. Teste alle Paare, deren Abstand in der Sortierung kleiner als 16 ist Q L R 40
41 Der Algorithmus im Überblick: Teile Punktmenge an Linie L in Q und R auf Löse Problem rekursiv auf Q und R Sortiere Punkte mit Abstand zu L höchstens nach y-koord. Teste alle Paare, deren Abstand in der Sortierung kleiner als 16 ist Q L R 41
42 NächstesPaar(P) 1. MergeSort(P, a, length[p]) Sortiere nach x-koordinate 2. return NächstesPaarRec(P,1,length[P]) 42
43 NächstesPaar(P) 1. MergeSort(P, a, length[p]) Θ(n log n) 2. return NächstesPaarRec(P,1,length[P]) 43
44 NächstesPaar(P) n=length[p] 1. MergeSort(P, a, length[p]) Θ(n log n) 2. return NächstesPaarRec(P,1,length[P]) T(n)+Θ(1) 44
45 NächstesPaar(P) 1. MergeSort(P, a, length[p]) Θ(n log n) 2. return NächstesPaarRec(P,1,length[P]) T(n)+Θ(1) T(n) + Θ(n log n) 45
46 NächstesPaarRec(P,a,c) 1. if b-a=1 then return (P[a],P[a+1]) 2. if b-a=2 then return nächstes Paar aus (P[a],P[a+1]), (P[a],P[a+2]), (P[a+1], P[a+2]) 4. b (a+c)/2 5. (q*, q*) NächstesPaar(P, a, b) 6. (r*, r*) NächstesPaar(P, b+1, c) 7. Zusammensetzen 46
47 NächstesPaarRec(P,a,c) Nächste Paare 1. if b-a=1 then return (P[a],P[a+1]) 2. if b-a=2 then return nächstes Paar aus (P[a],P[a+1]), (P[a],P[a+2]), (P[a+1], P[a+2]) 4. b (a+c)/2 5. (q*, q*) NächstesPaar(P, a, b) 6. (r*, r*) NächstesPaar(P, b+1, c) 7. Zusammensetzen Rekursionsabbruch bei 2 oder 3 Punkten 47
48 NächstesPaarRec(P,a,c) 1. if b-a=1 then return (P[a],P[a+1]) 2. if b-a=2 then return nächstes Paar aus (Median) (P[a],P[a+1]), (P[a],P[a+2]), (P[a+1], P[a+2]) 4. b (a+c)/2 Berechnung des mittleren Elements 5. (q*, q*) NächstesPaar(P, a, b) 6. (r*, r*) NächstesPaar(P, b+1, c) 7. Zusammensetzen 48
49 NächstesPaarRec(P,a,c) 1. if b-a=1 then return (P[a],P[a+1]) 2. if b-a=2 then return nächstes Paar aus (P[a],P[a+1]), (P[a],P[a+2]), (P[a+1], P[a+2]) 4. b (a+c)/2 5. (q*, q*) NächstesPaar(P, a, b) 6. (r*, r*) NächstesPaar(P, b+1, c) 7. Zusammensetzen Rekursiver Aufruf für linke Hälfte 49
50 NächstesPaarRec(P,a,c) 1. if b-a=1 then return (P[a],P[a+1]) 2. if b-a=2 then return nächstes Paar aus (P[a],P[a+1]), (P[a],P[a+2]), (P[a+1], P[a+2]) 4. b (a+c)/2 5. (q*, q*) NächstesPaar(P, a, b) 6. (r*, r*) NächstesPaar(P, b+1, c) 7. Zusammensetzen Rekursiver Aufruf für rechte Hälfte 50
51 NächstesPaarRec(P,a,c) 1. if b-a=1 then return (P[a],P[a+1]) 2. if b-a=2 then return nächstes Paar aus (P[a],P[a+1]), (P[a],P[a+2]), (P[a+1], P[a+2]) 4. b (a+c)/2 5. (q*, q*) NächstesPaar(P, a, b) 6. (r*, r*) NächstesPaar(P, b+1, c) 7. Zusammensetzen Pseudocode für das Zusammensetzen der beiden Hälften 51
52 NächstesPaarRec(P,a,c) 1. if b-a=1 then return (P[a],P[a+1]) 2. if b-a=2 then return nächstes Paar aus (P[a],P[a+1]), (P[a],P[a+2]), (P[a+1], P[a+2]) 4. b (a+c)/2 5. (q*, q*) NächstesPaar(P, a, b) 6. (r*, r*) NächstesPaar(P, b+1, c) 7. Zusammensetzen Θ(1) 52
53 NächstesPaarRec(P,a,c) 1. if b-a=1 then return (P[a],P[a+1]) 2. if b-a=2 then return nächstes Paar aus (P[a],P[a+1]), (P[a],P[a+2]), (P[a+1], P[a+2]) 4. b (a+c)/2 5. (q*, q*) NächstesPaar(P, a, b) 6. (r*, r*) NächstesPaar(P, b+1, c) 7. Zusammensetzen Θ(1) Θ(1) 53
54 NächstesPaarRec(P,a,c) Nächste Paare n=c-a 1. if b-a=1 then return (P[a],P[a+1]) 2. if b-a=2 then return nächstes Paar aus (P[a],P[a+1]), (P[a],P[a+2]), (P[a+1], P[a+2]) Θ(1) 4. b (a+c)/2 Θ(1) 5. (q*, q*) NächstesPaar(P, a, b) T(n/2) 6. (r*, r*) NächstesPaar(P, b+1, c) T(n/2) 7. Zusammensetzen 54
55 NächstesPaarRec(P,a,c) 1. if b-a=1 then return (P[a],P[a+1]) 2. if b-a=2 then return nächstes Paar aus (P[a],P[a+1]), (P[a],P[a+2]), (P[a+1], P[a+2]) Θ(1) 4. b (a+c)/2 Θ(1) 5. (q*, q*) NächstesPaar(P, a, b) T(n/2) 6. (r*, r*) NächstesPaar(P, b+1, c) T(n/2) 7. Zusammensetzen Θ(n log n) 55
56 NächstesPaarRec(P,a,c) 1. if b-a=1 then return (P[a],P[a+1]) 2. if b-a=2 then return nächstes Paar aus (P[a],P[a+1]), (P[a],P[a+2]), (P[a+1], P[a+2]) Θ(1) 4. b (a+c)/2 Θ(1) 5. (q*, q*) NächstesPaar(P, a, b) T(n/2) 6. (r*, r*) NächstesPaar(P, b+1, c) T(n/2) 7. Zusammensetzen Θ(n log n) 2 T(n/2) +Θ(n log n) 56
57 NächstesPaarRec(P,a,c) 1. if b-a=1 then return (P[a],P[a+1]) 2. if b-a=2 then return nächstes Paar aus Θ(1) (P[a],P[a+1]), (P[a],P[a+2]), (P[a+1], P[a+2]) 4. b (a+c)/2 Θ(1) 5. (q*, q*) NächstesPaar(P, a, b) T(n/2) 6. (r*, r*) NächstesPaar(P, b+1, c) T(n/2) 7. Zusammensetzen Θ(n log n) Laufzeit: T(n) = 2 T(n/2) + Θ(n log n) 2 T(n/2) +Θ(n log n) 57
58 Zusammensetzen 1. k=0 2. for i a to c do 3. if d(p[i],l) < min{d(q*,q*),d(r*,r*)} then 4. k k+1; R[k] P[a] 5. MergeSort(R,1,k) Sortiere nach y-koordinate 6. (q,r) (P[a], P[a+1]) 7. for i 1 to k do 8. for j 1 to 15 do 9. if i+j k then 10. if d(r[i],r[i+j])<d(q,r) then q R[i]; r R[i+j] 11. return nächstes Paar aus (q,r), (q*,q*), und (r*,r*)
59 Zusammensetzen 1. k=0 2. for i a to c do 3. if d(p[i],l) < min{d(q*,q*),d(r*,r*)} then 4. k k+1; R[k] P[a] 5. MergeSort(R,1,k) Sortiere nach y-koordinate 6. (q,r) (P[a], P[a+1]) 7. for i 1 to k do 8. for j 1 to 15 do 9. if i+j k then 10. if d(r[i],r[i+j])<d(q,r) then q R[i]; r R[i+j] 11. return nächstes Paar aus (q,r), (q*,q*), und (r*,r*) Alle Punkte mit Abstand höchstens zu L werden nach R kopiert 59
60 Zusammensetzen 1. k=0 2. for i a to c do R wird nach 3. if d(p[i],l) < min{d(q*,q*),d(r*,r*)} y-koordinate sortiert then 4. k k+1; R[k] P[a] 5. MergeSort(R,1,k) Sortiere nach y-koordinate 6. (q,r) (P[a], P[a+1]) 7. for i 1 to k do 8. for j 1 to 15 do 9. if i+j k then 10. if d(r[i],r[i+j])<d(q,r) then q R[i]; r R[i+j] 11. return nächstes Paar aus (q,r), (q*,q*), und (r*,r*)
61 Zusammensetzen 1. k=0 2. for i a to c do (q,r) wird mit 3. if d(p[i],l) < min{d(q*,q*),d(r*,r*)} initialisiert (hier kann then 4. k k+1; R[k] P[a] man jedes beliebige Paar verwenden) 5. MergeSort(R,1,k) Sortiere nach y-koordinate 6. (q,r) (P[a], P[a+1]) 7. for i 1 to k do 8. for j 1 to 15 do 9. if i+j k then 10. if d(r[i],r[i+j])<d(q,r) then q R[i]; r R[i+j] 11. return nächstes Paar aus (q,r), (q*,q*), und (r*,r*)
62 Zusammensetzen 1. k=0 2. for i a to c do 3. if d(p[i],l) < min{d(q*,q*),d(r*,r*)} then 4. k k+1; R[k] P[a] Für alle Punkte aus R teste, ob sie zusammen mit einem ihrer 15 Nachfolger ein besseres Paar bilden als das bislang gemerkte 5. MergeSort(R,1,k) Sortiere nach y-koordinate 6. (q,r) (P[a], P[a+1]) 7. for i 1 to k do 8. for j 1 to 15 do 9. if i+j k then 10. if d(r[i],r[i+j])<d(q,r) then q R[i]; r R[i+j] 11. return nächstes Paar aus (q,r), (q*,q*), und (r*,r*)
63 Zusammensetzen 1. k=0 2. for i a to c do 3. if d(p[i],l) < min{d(q*,q*),d(r*,r*)} then 4. k k+1; R[k] P[a] 5. MergeSort(R,1,k) Sortiere nach y-koordinate 6. (q,r) (P[a], P[a+1]) 7. for i 1 to k do 8. for j 1 to 15 do 9. if i+j k then 10. if d(r[i],r[i+j])<d(q,r) then q R[i]; r R[i+j] Gib das beste gefundene Paar zurück 11. return nächstes Paar aus (q,r), (q*,q*), und (r*,r*)
64 Laufzeit: T(n) = 2 T(n/2) + Θ(n log n) T(n) = O(n log²n) [Substitutionsmethode] Satz 9 Das nächste Paar von n Punkten in der Ebene kann in O(n log²n) Zeit berechnet werden. Hinweis: Man kann die Laufzeit des Algorithmus relativ einfach auf O(n log n) verbessern. 64
65 Zusammenfassung Teile & Herrsche: Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Probleme: Wie setzt man zusammen? [erfordert algorithmisches Geschick und Übung] Laufzeitanalyse (Auflösen der Rekursion) [ist normalerweise nach Standardschema; erfordert ebenfalls Übung] 65
66 Zusammenfassung Teile & Herrsche: Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Algorithmen: MergeSort Binäre Suche Integer Multiplikation; Matrix Multiplikation Nächste Paare 66
Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt
Divide and Conquer Das Divide - and - Conquer Prinzip Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt 2 Quicksort: Sortieren durch Teilen
MehrDivide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen
Teile & Herrsche: Divide & Conquer Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Probleme: Wie setzt man zusammen? [erfordert algorithmisches Geschick
MehrDatenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Klausur Wichtige Hinweise: 2.7.07, Beginn 9 Uhr Bitte spätestens 8:4 Uhr vor Ort sein Sporthalle + Audimax Informationen
Mehr16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 03.12.2013 Algorithmische Geometrie: Schnitte von Strecken Sweep-Line INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.
MehrKapitel 2. Weitere Beispiele Effizienter Algorithmen
Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte
MehrAlgorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier
Algorithmen und Datenstrukturen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Algorithmen und Datenstrukturen Gesamtübersicht Organisatorisches / Einführung Grundlagen: RAM,
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 017/18 8. Vorlesung Sortieren mit dem Würfel! Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I - 5 Guten Morgen! Tipps für unseren ersten Test am Do,
MehrFormaler. Gegeben: Elementfolge s = e 1,...,e n. s ist Permutation von s e 1 e n für eine lineare Ordnung ` '
Sortieren & Co 164 165 Formaler Gegeben: Elementfolge s = e 1,...,e n Gesucht: s = e 1,...,e n mit s ist Permutation von s e 1 e n für eine lineare Ordnung ` ' 166 Anwendungsbeispiele Allgemein: Vorverarbeitung
MehrG. Zachmann Clausthal University, Germany Die wichtigsten Entwurfsverfahren für Algorithmen:
lausthal Informatik II Divide & onquer. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Algorithmen-Design-Techniken Die wichtigsten Entwurfsverfahren für Algorithmen: 1. Divide and onquer
MehrAlgorithmische Techniken für Geometrische Probleme
Algorithmische Techniken für Geometrische Probleme Berthold Vöcking 14. Juni 2007 Inhaltsverzeichnis 1 Die Sweepline-Technik 2 1.1 Schnitte orthogonaler Liniensegmente............... 2 1.2 Schnitte beliebiger
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 17. Vorlesung Nächstes Paar Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Problem: Gegeben: Menge P von n Punkten in der Ebene, jeder Punkt
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind
MehrRandomisierte Algorithmen 2. Erste Beispiele
Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Große Übung #6 Phillip Keldenich, Arne Schmidt 26.02.2017 Heute: Master-Theorem Phillip Keldenich, Arne Schmidt Große Übung 2 Vorbetrachtungen Wir betrachten rekursive Gleichungen
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci
MehrInformatik II, SS 2016
Informatik II - SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 2 (22.4.2016) Sortieren II Algorithmen und Komplexität SelectionSort: Programm Schreiben wir doch das gleich mal als Java/C++ - Programm
Mehr6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.
Algorithmen und Datenstrukturen 132 6 Quicksort In diesem Abschnitt wird Quicksort, ein weiterer Sortieralgorithmus, vorgestellt. Trotz einer eher langsamen Worst-Case Laufzeit von Θ(n 2 ) ist Quicksort
Mehr2.2 Allgemeine (vergleichsbasierte) Sortierverfahren
. Allgemeine (vergleichsbasierte) Sortierverfahren Vergleichsbaum: Der Aufbau des Verbleichsbaum ist für jeden Algorithmus und jede Eingabelänge n gleich. Jede Permutation der Eingabe, muss zu einem anderen
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 2 (23.4.2018) Sortieren II, Asymptotische Analyse, O-Notation Algorithmen und Komplexität Laufzeit Zeitmessung SelectionSort n 2 Laufzeit/n
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 9, Donnerstag 18. Dezember 2014 (Teile und Herrsche, Mastertheorem) Junior-Prof. Dr.
MehrAuswählen nach Rang (Selektion)
Auswählen nach Rang (Selektion) Geg.: Folge X von n Schlüsseln, eine Zahl k mit k n Ges.: ein k-kleinster Schlüssel von X, also den Schlüssel x k für X sortiert als x x 2 L x n trivial lösbar in Zeit O(kn)
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Map Labeling INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrGierige Algorithmen Interval Scheduling
Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} 7. j i 8. return A Gierige Algorithmen Interval Scheduling Beweisidee:
MehrHeapsort, Quicksort, Mergesort. 8. Sortieren II
209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] Heapsort 211 Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:
MehrSortieren & Co. KIT Institut für Theoretische Informatik
Sortieren & Co KIT Institut für Theoretische Informatik 1 Formaler Gegeben: Elementfolge s = e 1,...,e n Gesucht: s = e 1,...,e n mit s ist Permutation von s e e 1 n für eine Totalordnung ` ' KIT Institut
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen Lerneinheit : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft
MehrAlle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).
8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame
Mehr14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften
Heapsort, Quicksort, Mergesort 14. Sortieren II 14.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 397 398 Heapsort [Max-]Heap 7 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrRange-Search. Operationen: Welche Datenstrukturen sind geeignet? Arrays? Listen? AVL-Bäume? Splay-Bäume?
Algorithmische Geometrie Die Technik der Sweepline Range-Search (Folie 431, Seite 79 im Skript) Operationen: 1 Einfügen einer Zahl x 2 Löschen einer Zahl x 3 Ausgabe aller gespeicherter Zahlen in [a, b]
MehrAlgorithmische Methoden zur Netzwerkanalyse
Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Mariano Zelke Datenstrukturen 2/19 Das Teilfolgenproblem: Algorithmus A 3 A 3 (i, j bestimmt den Wert einer maximalen Teilfolge für a i,..., a j. (1 Wenn
Mehr8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften
Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit
MehrHeapsort, Quicksort, Mergesort. 8. Sortieren II
209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 211 Heapsort Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:
Mehr2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017
2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 01/13 6. Vorlesung Prioritäten setzen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Guten Morgen! Tipps für unseren ersten Test am 0. November: Lesen
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
MehrProseminar Effiziente Algorithmen
Proseminar Effiziente Algorithmen Kapitel 4: Sortieren, Selektieren und Suchen Prof. Dr. Christian Scheideler WS 2017 Übersicht Sortieren Selektieren Suchen 08.11.2017 Proseminar EA 2 Sortierproblem 5
MehrGrundlagen der Algorithmen und Datenstrukturen Kapitel 12
Grundlagen der Algorithmen und Datenstrukturen Kapitel 12 Christian Scheideler + Helmut Seidl SS 2009 28.06.09 Kapitel 12 1 Generische Optimierungsverfahren Techniken: Systematische Suche lass nichts aus
MehrGraphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke
Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische
Mehr1.3 Erinnerung: Mergesort
Mergesort 1.3 Erinnerung: Mergesort Um n Zahlen/Objekte a 1,..., a n zu sortieren, geht der Mergesort-Algorithmus so vor: Falls n n 0 : Sortiere mit einem naiven Algorithmus (z. B. Insertion Sort). Sonst:
Mehr5. Bäume und Minimalgerüste
5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)
MehrAlgorithmen und Datenstrukturen Tutorium Übungsaufgaben
Algorithmen und Datenstrukturen Tutorium Übungsaufgaben AlgoDat - Übungsaufgaben 1 1 Landau-Notation Aufgabe Lösung 2 Rekurrenzen Aufgabe 3 Algorithmenentwurf und -analyse Aufgabe AlgoDat - Übungsaufgaben
MehrEinführung & Konvexe Hülle
Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 12.04.2011 AlgoGeom-Team Dozent Martin Nöllenburg noellenburg@kit.edu
Mehr1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner. Musterlösung Problem : Average-case-Laufzeit vs. Worst-case-Laufzeit ** (a) Im schlimmsten Fall werden für jedes Element
MehrEffiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra
Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)
MehrProseminar Effiziente Algorithmen
Proseminar Effiziente Algorithmen Kapitel 4: Sortieren Prof. Dr. Christian Scheideler WS 2016 Übersicht Sortieren Selektieren Suchen 09.11.2016 Proseminar EA 2 Sortierproblem 5 10 19 1 14 3 7 12 2 8 16
MehrKap. 3: Sortieren (3)
Kap. 3: Sortieren (3) Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund 6. VO DAP2 SS 2009 30. April 2009 Überblick Quick-Sort Analyse von Quick-Sort Quick-Sort
MehrKlausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Wintersemester 2016/2017 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Phillip Keldenich Arne Schmidt Klausur Algorithmen
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
MehrKapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle
Kapitel 9 Algorithm. Geometrie Kürzeste Abstände Konvexe Hülle Überblick Teilgebiet der Informatik, in dem es um die Entwicklung effizienter Algorithmen und die Bestimmung der algorithmischen Komplexität
Mehr2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.
2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum
Mehr2. Effizienz von Algorithmen
Effizienz von Algorithmen 2. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3,4.2-4.4 Ottman/Widmayer, Kap. 1.1]
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Die Landau-Notation (Wiederholung und Vertiefung) 2. Vorbereitung Aufgabenblatt 1, Aufgabe 1
MehrEinführung & Konvexe Hülle
Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.04.2012 AlgoGeom-Team Dozent Martin Nöllenburg noellenburg@kit.edu
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / Vorlesung 9, Donnerstag 19.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 9, Donnerstag 19. Dezember 2013 (Teile und Herrsche, Mastertheorem) Junior-Prof. Dr.
MehrKomplexität von Algorithmen:
Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine
MehrKlausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y
GRUNDZÜGE DER ALGORITHMISCHEN GEOMETRIE Klausur 18. Juli 2008, 10:15-12:15 Uhr Name:................................... Matrikelnummer:................................... Anzahl beschriebener Blätter (ohne
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise
Mehr3.2. Divide-and-Conquer-Methoden
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE 3.2. Divide-and-Conquer-Methoden Divide-and-Conquer-Methoden Einfache Sortieralgorithmen reduzieren die Größe des noch
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 018/19 6. Vorlesung Prioritäten setzen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I - 4 Heute: Wir bauen eine Datenstruktur Datenstruktur: Konzept,
MehrGrundlagen Theoretischer Informatik 3 SoSe 2012 in Trier. Henning Fernau Universität Trier
Grundlagen Theoretischer Informatik 3 SoSe 2012 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik 3 Gesamtübersicht Organisatorisches; Einführung Algorithmenanalyse:
MehrÜbersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill
Konvexe Hülle Hierbei handelt es sich um ein klassisches Problem aus der Algorithmischen Geometrie, dem Teilgebiet der Informatik, in dem man für geometrische Probleme effiziente Algorithmen bestimmt.
MehrKrawatterätsel - Verbesserung der oberen Schranke
Krawatterätsel - Verbesserung der oberen Schranke Felix Kälberer, Matthias Nieser, Ulrich Reitebuch 29. Dezember 2008 Zusammenfassung Die folgenden Seiten beschreiben neue Erkenntnisse im Krawattenrätsel.
MehrKrawattenrätsel - Verbesserung der oberen Schranke
Krawattenrätsel - Verbesserung der oberen Schranke Felix Kälberer, Matthias Nieser, Ulrich Reitebuch 9. Dezember 008 Zusammenfassung Die folgenden Seiten beschreiben neue Erkenntnisse im Krawattenrätsel.
MehrKapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung
Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte
MehrDas Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.
MehrÜbungen zu Algorithmentechnik WS 09/10
Übungen zu Algorithmentechnik WS 09/10 1. Kurzsitzung Thomas Pajor 22. Oktober 2009 1/ 25 Eure Übungsleiter Tanja Hartmann t.hartmann@kit.edu Raum 306, Gebäude 50.34 Thomas Pajor pajor@kit.edu Raum 322,
MehrBereichsabfragen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie
Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.05.2011 Geometrie in Datenbanken In einer Personaldatenbank
Mehr19. Dynamic Programming I
502 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrVorlesung Algorithmische Geometrie Konvexe Hülle im R 3
Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3 LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Andreas Gemsa 26.06.2012 Prüfung! Termine: 20. Juli 27.
MehrVL-04: Rekursionsgleichungen. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger
VL-04: Rekursionsgleichungen (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger SS 2017, RWTH DSAL/SS 2017 VL-04: Rekursionsgleichungen 1/37 Organisatorisches Vorlesung: Gerhard Woeginger (Zimmer
MehrAbschnitt 19: Sortierverfahren
Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758
MehrProseminar Effiziente Algorithmen
Proseminar Effiziente Algorithmen Kapitel 9: Divide & Conquer und Prof. Dr. Christian Scheideler WS 218 Generische Optimierungsverfahren: Systematische Suche lass nichts aus Divide and Conquer löse das
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
MehrVorlesung Geometrische Algorithmen Generierung von Nicht-uniformen Netzen Sven Schuierer
Vorlesung Geometrische Algorithmen Generierung von Nicht-uniformen Netzen Sven Schuierer Uberblick 1. Anwendung 2. Anforderungen an Netze 3. Quadrantenbaume Quadrantenbaume fur Punktemengen Bestimmung
MehrPunktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie
Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 24.05.2011 Motivation Gegeben eine Position p = (p x, p y )
MehrVoronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Untere Schranken für Sortieren Sortieren mit linearem Aufwand Mediane und Ranggrössen 2 Wie schnell können wir sortieren?
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge
MehrBuild-Max-Heap. Build-Max-HeappAq. Satz Nach Ablauf von Build-Max-Heap ist A ein Heap. Build-Max-Heap hat Laufzeit Opnq.
C. Komusiewicz 3.1 Sortieren und Selektion: Heap-Sort 45 Build-Max-Heap Aufgabe: Baue unsortiertes Array A der Länge n in einen Max-Heap um Idee: Blätter stehen in Artn{2u ` 1..ns und sind bereits zu Beginn
MehrHeapsort. Dr. Michael Brinkmeier (TU Ilmenau) Algorithmen und Datenstrukturen / 50
Heapsort Dr. Michael Brinkmeier (TU Ilmenau) Algorithmen und Datenstrukturen 27.6.2007 / 50 Heapsort - Wiederholung Definition Array A[..n] mit Einträgen aus (U,
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
MehrÜbersicht. 1 Einführung. 2 Suchen und Sortieren. 3 Graphalgorithmen. 4 Algorithmische Geometrie. 5 Textalgorithmen. 6 Paradigmen
Übersicht 1 Einführung 2 Suchen und Sortieren 3 Graphalgorithmen 4 Algorithmische Geometrie 5 6 Paradigmen Übersicht 5 Editdistanz (Folie 446, Seite 83 im Skript) Eingabe: Zwei Strings v und w Frage: Kommt
MehrZunächst ein paar einfache "Rechen"-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt:
Der Groß-O-Kalkül Zunächst ein paar einfache "Rechen"-Regeln: G. Zachmann Informatik 1 - WS 05/06 Komplexität 22 Additionsregel Lemma, Teil 1: Für beliebige Funktionen f und g gilt: Zu beweisen: nur das
Mehr9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion
Experiment: Die Türme von Hanoi. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration Links Mitte Rechts Mathematische Rekursion Viele mathematische Funktionen
MehrIsomorphismus. Definition Gruppen-Isomorphismus. Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt
Isomorphismus Definition Gruppen-Isomorphismus Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt 1 f ist bijektiv f (u + v) = f (u) f (v) für alle u, v G, die
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit
MehrAlgorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:
Algorithmen I Prof. Jörn Müller-Quade 24.05.2017 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik
Mehr15. Elementare Graphalgorithmen
Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen
Mehr