Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Größe: px
Ab Seite anzeigen:

Download "Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität"

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

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

Mehr

Divide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen

Divide & 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

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen 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

Mehr

16. All Pairs Shortest Path (ASPS)

16. 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

Mehr

Algorithmen II Vorlesung am

Algorithmen 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 Ü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.

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Kapitel 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

Mehr

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Algorithmen 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,

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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,

Mehr

Formaler. Gegeben: Elementfolge s = e 1,...,e n. s ist Permutation von s e 1 e n für eine lineare Ordnung ` '

Formaler. 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

Mehr

G. Zachmann Clausthal University, Germany Die wichtigsten Entwurfsverfahren für Algorithmen:

G. 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

Mehr

Algorithmische Techniken für Geometrische Probleme

Algorithmische 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte 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

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: 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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

Informatik II, SS 2016

Informatik 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

Mehr

6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.

6 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

Mehr

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren

2.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

Mehr

Informatik II, SS 2018

Informatik 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

Mehr

Algorithmen 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 / 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.

Mehr

Auswählen nach Rang (Selektion)

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

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

Gierige Algorithmen Interval Scheduling

Gierige 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:

Mehr

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Heapsort, 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:

Mehr

Sortieren & Co. KIT Institut für Theoretische Informatik

Sortieren & 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

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen 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 Ü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

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Alle 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

Mehr

14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

14. 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

Mehr

19. Dynamic Programming I

19. 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.

Mehr

Range-Search. Operationen: Welche Datenstrukturen sind geeignet? Arrays? Listen? AVL-Bäume? Splay-Bäume?

Range-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]

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische 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

Mehr

19. Dynamic Programming I

19. 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.

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. 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

Mehr

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

8. 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

Mehr

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Heapsort, 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:

Mehr

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017

2. 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: 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

Mehr

Proseminar Effiziente Algorithmen

Proseminar 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

Mehr

Grundlagen der Algorithmen und Datenstrukturen Kapitel 12

Grundlagen 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

Mehr

Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke

Graphenalgorithmen 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

Mehr

1.3 Erinnerung: Mergesort

1.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:

Mehr

5. Bäume und Minimalgerüste

5. 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 Ü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)

Mehr

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Algorithmen 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

Mehr

Einführung & Konvexe Hülle

Einfü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

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1

1. 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

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

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

Mehr

Proseminar Effiziente Algorithmen

Proseminar 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

Mehr

Kap. 3: Sortieren (3)

Kap. 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

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Kapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle

Kapitel 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

Mehr

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

2. 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

Mehr

2. Effizienz von Algorithmen

2. 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 Ü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

Mehr

Einführung & Konvexe Hülle

Einfü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

Mehr

Algorithmen 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 / 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.

Mehr

Komplexität von Algorithmen:

Komplexitä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

Mehr

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y

Klausur. 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) Ü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

Mehr

3.2. Divide-and-Conquer-Methoden

3.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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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,

Mehr

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

Ü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.

Mehr

Krawatterätsel - Verbesserung der oberen Schranke

Krawatterä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.

Mehr

Krawattenrätsel - Verbesserung der oberen Schranke

Krawattenrä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.

Mehr

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

Kapitel 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

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das 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 Ü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,

Mehr

Bereichsabfragen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Bereichsabfragen. 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

Mehr

19. Dynamic Programming I

19. 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.

Mehr

Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3

Vorlesung 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.

Mehr

VL-04: Rekursionsgleichungen. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger

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

Mehr

Abschnitt 19: Sortierverfahren

Abschnitt 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

Mehr

Proseminar Effiziente Algorithmen

Proseminar 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

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbä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

Mehr

Vorlesung Geometrische Algorithmen Generierung von Nicht-uniformen Netzen Sven Schuierer

Vorlesung 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

Mehr

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

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

Mehr

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Voronoi-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 :

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & 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?

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Build-Max-Heap. Build-Max-HeappAq. Satz Nach Ablauf von Build-Max-Heap ist A ein Heap. Build-Max-Heap hat Laufzeit Opnq.

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

Mehr

Heapsort. Dr. Michael Brinkmeier (TU Ilmenau) Algorithmen und Datenstrukturen / 50

Heapsort. 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,

Mehr

Algorithmen & Komplexität

Algorithmen & 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 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

Mehr

Zunächst ein paar einfache "Rechen"-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt:

Zunä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

Mehr

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

9. 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

Mehr

Isomorphismus. 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 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

Mehr

Algorithmen & Komplexität

Algorithmen & 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

Algorithmen und Datenstrukturen 2

Algorithmen 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

Mehr

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:

Algorithmen 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

Mehr

15. Elementare Graphalgorithmen

15. 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