Sortieren und Suchen. Jens Wächtler Hallo Welt! -Seminar LS 2

Größe: px
Ab Seite anzeigen:

Download "Sortieren und Suchen. Jens Wächtler Hallo Welt! -Seminar LS 2"

Transkript

1 Sortieren und Suchen Jens Wächtler Hallo Welt! -Seminar LS 2

2 Überblick Sortieren kurze Wiederholung Binäre & Ternäre Suche Binäre Suche in einer Liste Bisektionsverfahren (Nullstellensuche) Ternäre Suche (Extremasuche) Range Minimum Query Lowest Common Ancestor Quellen Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 2

3 Sortieren Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 3

4 Warum sortieren? Sortieren gibt Daten Struktur Ermöglicht die Verwendung von effizienten Suchalgorithmen Kosten-Nutzen-Verhältnis meist vorteilhaft Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 4

5 Eigenschaften von Sortieralgorithmen Zusätzlicher Speicherbedarf Stabilität stabil: Die Reihenfolge bei gleichem Schlüssel bleibt erhalten instabil: Die Reihenfolge bei gleichen Schlüssel wird nicht unbedingt behalten Komplexitätsanalyse Best Case Average Case Worst Case Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 5

6 Vergleichsbasierte Sortieralgorithmen Algorithmus Best-Case Average-Case Worst-Case Stabil Zusätzlicher Speicherbedarf Bogosort O(n) O(n n!) Bubblesort O(n) O(n 2 ) O(n 2 ) Insertionsort O(n) O(n 2 ) O(n 2 ) Shellsort O(n) O(n log n ²) O(n 1,25 ) Quicksort O(n log n ) O(n log n ) O(n 2 ) Für den Heap Introsort O(n log n ) O(n log n ) O(n log n ) Selectionsort O(n 2 ) O(n 2 ) O(n 2 ) Heapsort O(n log n ) O(n log n ) O(n log n ) Mergesort O(n log n ) O(n log n ) O(n log n ) O(n) Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 6

7 Suche Implementieren Suchalgorithmen selbst zu implementieren kostet Zeit Nutzt die Java-API & C++-STL Wesentlich schneller und weniger fehleranfällig Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 7

8 Suchen Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 8

9 Naiver Ansatz Sequentielle Suchen Suchen eines Elementes in einer Liste Vorteil: Keine Sortierung nötig Nachteil: Aufwand sehr hoch. Worst-Case: O n Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 9

10 Optimierter Ansatz Auf geordneten Listen suchen Ermöglicht effizienteres Suchen Binäre Suche Worst Case: O(log n) Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 10

11 Binäre Suche Verfahren: Eingabe: liste; wert; links = 0; rechts = liste.length() - 1; mitte = (links + rechts) / 2 links > rechts return -1; wert == liste[mitte] return mitte; rechts = mitte - 1; wert < liste[mitte] links = mitte + 1; Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 11

12 Beispiel: Binäre Suche Gesucht: 13 links = 0; rechts = 9; mitte = 4; Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 12

13 Beispiel: Binäre Suche Gesucht: 13 links = 0; rechts = 9; mitte = 4; Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 13

14 Beispiel: Binäre Suche Gesucht: 13 links = 0; rechts = 9; mitte = 4; Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 14

15 Beispiel: Binäre Suche Gesucht: 13 links = 0; rechts = 9; mitte = 4; Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 15

16 Bisektionsverfahren Nullstellensuche einer Funktion f(x) Numerisches Verfahren Voraussetzungen: Funktion ist stetig auf abgeschlossenem Intervall [a, b] Es existiert ein Vorzeichenwechsel f a < 0 und f b > Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 16

17 Beispiel: Bisektionsverfahren 4,0 3,0 2,0 1,0 0,0-0,5-1,0 0 0,5 1 1,5 2 2,5 f x = x 2 2 [a n, b n ] a 0 = 0, b 0 = 2 x n = a n + b n 2-2,0-3,0 n a n b n f(a n ) f b n x n f x n ,5 0, ,5-1 0,25 1,25-0, ,25 1,5-0,4375 0,25 1,375-0, ,375 1,5-0, ,25 1,4375 0, ,375 1,4375-0, , , , Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 17

18 Beispiel: Bisektionsverfahren 4,0 3,0 2,0 1,0 0,0-0,5-1,0 0 0,5 1 1,5 2 2,5 f x = x 2 2 [a n, b n ] a 0 = 0, b 0 = 2 x n = a n + b n 2-2,0-3,0 n a n b n f(a n ) f b n x n f x n ,5 0, ,5-1 0,25 1,25-0, ,25 1,5-0,4375 0,25 1,375-0, ,375 1,5-0, ,25 1,4375 0, ,375 1,4375-0, , , , Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 18

19 Beispiel: Bisektionsverfahren 4,0 3,0 2,0 1,0 0,0-0,5-1,0 0 0,5 1 1,5 2 2,5 f x = x 2 2 [a n, b n ] a 0 = 0, b 0 = 2 x n = a n + b n 2-2,0-3,0 n a n b n f(a n ) f b n x n f x n ,5 0, ,5-1 0,25 1,25-0, ,25 1,5-0,4375 0,25 1,375-0, ,375 1,5-0, ,25 1,4375 0, ,375 1,4375-0, , , , Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 19

20 Beispiel: Bisektionsverfahren 4,0 3,0 2,0 1,0 0,0-0,5-1,0 0 0,5 1 1,5 2 2,5 f x = x 2 2 [a n, b n ] a 0 = 0, b 0 = 2 x n = a n + b n 2-2,0-3,0 n a n b n f(a n ) f b n x n f x n ,5 0, ,5-1 0,25 1,25-0, ,25 1,5-0,4375 0,25 1,375-0, ,375 1,5-0, ,25 1,4375 0, ,375 1,4375-0, , , , Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 20

21 Beispiel: Bisektionsverfahren 4,0 3,0 2,0 1,0 0,0-0,5-1,0 0 0,5 1 1,5 2 2,5 f x = x 2 2 [a n, b n ] a 0 = 0, b 0 = 2 x n = a n + b n 2-2,0-3,0 n a n b n f(a n ) f b n x n f x n ,5 0, ,5-1 0,25 1,25-0, ,25 1,5-0,4375 0,25 1,375-0, ,375 1,5-0, ,25 1,4375 0, ,375 1,4375-0, , , , Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 21

22 Ternäre Suche Problem: Finden von Extrema mit Genauigkeit ε Voraussetzung: Funktion f x hat nur eine Extremstelle in einem abgeschlossenen Intervall a, b Funktion f x steigt (fällt) monoton im Intervall a, x und fällt (steigt) monoton im Intervall x, b Idee: Intervall wird pro Iteration in drei Teile aufgeteilt Suche wird auf neuem (kleineren) Intervall fortgesetzt Wenn gewünschte Genauigkeit erreicht, dann terminiere Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 22

23 Ternäre Suche: Ablauf 1. Aufteilen des Intervalls [a, b] in die drei Intervalle a, c, c, b und a, d 2. Berechnen der Funktionswerte f(c) und f(d) 3. Drei Fälle: f c < f d Extremum im Intervall [c, b] f c > f d Extremum im Intervall [a, d] f c = f(d) Extremum im Intervall [c, d] 4. Falls geforderte Genauigkeit erreicht gib x zurück 5. Ansonsten: Nächste Iteration mit neuem Bereich Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 23

24 Ternäre Suche: Beispiel f x = x 3 + 5x² + 2 Ausgangssituation: a, b = 1, c = 7 3 d = 11 3 n a b c d f(a) f(b) f(c) f(d) /3 11/ , /3 5 3, , , , , /3 4, , , , , , Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 24

25 Ternäre Suche: Beispiel f x = x 3 + 5x² + 2 Ausgangssituation: a, b = 1, c = 7 3 d = 11 3 n a b c d f(a) f(b) f(c) f(d) /3 11/ , /3 5 3, , , , , /3 4, , , , , , Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 25

26 Ternäre Suche: Beispiel f x = x 3 + 5x² + 2 Ausgangssituation: a, b = 1, c = 7 3 d = 11 3 n a b c d f(a) f(b) f(c) f(d) /3 11/ , /3 5 3, , , , , /3 4, , , , , , Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 26

27 Ternäre Suche: Beispiel f x = x 3 + 5x² + 2 Ausgangssituation: a, b = 1, c = 7 3 d = 11 3 n a b c d f(a) f(b) f(c) f(d) /3 11/ , /3 5 3, , , , , /3 4, , , , , , Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 27

28 Range-Minimum-Query Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 28

29 Range-Minimum-Query Problem: Gesucht ist der Index des kleinsten Elements innerhalb eines Teilarrays A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] RMQ A 2,5 = 4 Naiver Ansatz: Sequenzielle Suche im Teilbereich Laufzeit pro Anfrage: O(n) Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 29

30 Range-Minimum-Query: Optimierung Verarbeitung der Liste in eine Lookup-Tabelle Form der Tabelle A[start][länge] RMQ A (0,0) RMQ A (0,1) RMQ A (0,2) RMQ A (0,7) RMQ A (1,1) RMQ A (1,2) RMQ A (1,7) RMQ A (2,2) RMQ A (2,7) RMQ A (7,7) Laufzeit für Erstellung O n 3 Suchen O(1) Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 30

31 Range-Minimum-Query: Optimierung Nicht jede mögliche Sequenz speichern RMQ A Teilbereiche der Länge 2 j, j 0, log 2 (n) Vorverarbeitung lässt sich in O n log n bewerkstelligen Platzbedarf beträgt O n log n Suche in O(1) Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 31

32 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 32

33 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 33

34 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 34

35 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 35

36 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 36

37 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 37

38 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 38

39 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 39

40 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 40

41 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 41

42 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 42

43 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 43

44 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 44

45 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 45

46 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 46

47 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 47

48 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 48

49 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 49

50 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 50

51 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 51

52 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 52

53 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 53

54 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 54

55 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 55

56 RMQ: Sparse Table M A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 56

57 RMQ: Sparse Table M Suchanfrage: A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] M i k, A[M i k A[M j 2 k + 1 k ] RMQ A i, j = M j 2 k + 1 k, sonst RMQ A 2,8 RMQ A 2,5 & RMQ A (5,8) RMQ A (2,5) = 4 RMQ A (5,8) = 7 RMQ A (2,8) = 4 Anfrage in O(1) Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 57

58 Lowest Common Ancestor Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 58

59 Lowest Common Ancestor Gegeben ist ein gerichteter Baum Gesucht ist gemeinsamer Elternknoten zweier unterschiedlicher Knoten Der am weitesten von der Wurzel entfernte Elternknoten ist der Lowest Common Ancestor Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 59

60 Lowest Common Ancestor LCA 5,3 = Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 60

61 LCA: Erste Überlegung Weg von der Wurzel zu den Knoten speichern Der letzte gemeinsame Knoten ist LCA Vorteil: Einfach zu Implementieren Nachteil: Laufzeit O n Ungeeignet für viele Abfragen Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 61

62 LCA: Optimierung Umwandlung von LCA zu RMQ Benutze Tiefensuche auf Baum Befülle drei Arrays auf dem Weg: Array A[i] speichert Schlüssel des Knoten Array B[i] speichert Distanz zur Wurzel Array C i speichert das erstmalige Vorkommen eines Knoten Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 62

63 LCA zu RMQ: Beispiel Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 63

64 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = 2 C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 64

65 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A 9 B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 65

66 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A 9 4 B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 66

67 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 67

68 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 68

69 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 69

70 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 70

71 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 71

72 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 72

73 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 73

74 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 74

75 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 75

76 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 76

77 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 77

78 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 78

79 LCA zu RMQ: Beispiel LCA 6,8 = A RMQ B (C 6, C 8 ) = A RMQ B 7,11 = C A B Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 79

80 FRAGEN? Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 80

81 Quellen RMQ & LCA Bisektionsverfahren odule=thread&threadid=670168&start=0&mc=10 Ternäre Suche odule=thread&threadid=670169&start=0&mc=2 Folien früherer Semester Jens Wächtler Hallo Welt! -Seminar LS 2 Suchen und Sortieren 81

Sortier- und Suchalgorithmen

Sortier- und Suchalgorithmen Sortier- und Suchalgorithmen Stefan Kraus 13.05.2015 Stefan Kraus Sortier- und Suchalgorithmen 13.05.2015 1 / 66 Wiederholung: Sortierverfahren Sortierverfahren [1] Verfahren Best Average Worst stabil

Mehr

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik Tag 18 Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik 09.09.2009 Agenda Tag 16 Datenstrukturen Abstrakte Datentypen, ADT Folge: Stack, Queue, Liste, ADT Menge: Bäume:

Mehr

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 11. Übung Verkettete Listen, Sortieren Insertionsort, Mergesort, Radixsort, Quicksort Clemens Lang Übungen zu AuD 19. Januar 2010 Clemens Lang (Übungen zu AuD) Algorithmen

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt

Mehr

Übung: Algorithmen und Datenstrukturen SS 2007

Übung: Algorithmen und Datenstrukturen SS 2007 Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 5 Votierung in der Woche vom 04.06.0708.06.07 Aufgabe 12 Manuelle Sortierung

Mehr

Aufgabe (Schreibtischtest, Algorithmenanalyse)

Aufgabe (Schreibtischtest, Algorithmenanalyse) Aufgabe (Schreibtischtest, Algorithmenanalyse) Führen Sie einen Schreibtischtest für den Algorithmus Positionsort für das folgende Eingabe-Array durch. Geben Sie nach jedem Durchlauf der for-schleife mit

Mehr

7. Übung zu Algorithmen I 1. Juni 2016

7. Übung zu Algorithmen I 1. Juni 2016 7. Übung zu Algorithmen I 1. Juni 2016 Lukas Barth lukas.barth@kit.edu (mit Folien von Lisa Kohl) Roadmap Ganzzahliges Sortieren mit reellen Zahlen Schnellere Priority Queues Bucket Queue Radix Heap Organisatorisches

Mehr

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: Binäre Suchbäume (a, b)-bäume (Folie 173, Seite 56 im Skript) Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: 1 Jeder Knoten hat höchstens b Kinder. 2 Jeder

Mehr

Prof. Dr. Margarita Esponda

Prof. Dr. Margarita Esponda Algorithmen und Programmieren II Sortieralgorithmen imperativ Teil I Prof. Dr. Margarita Esponda Freie Universität Berlin Sortieralgorithmen Bubble-Sort Insert-Sort Selection-Sort Vergleichsalgorithmen

Mehr

Pro Informatik 2009: Objektorientierte Programmierung Tag 17. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik

Pro Informatik 2009: Objektorientierte Programmierung Tag 17. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik Tag 17 Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik 08.09.2009 Agenda Tag 16 Datenstrukturen Abstrakte Datentypen, ADT Folge: Stack, Queue, Liste, ADT Menge: Bäume:

Mehr

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden! Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Informatik II: Algorithmen & Datenstrukturen Montag, 29. August, 2014, 14:00 17:00 Name:...........................................................

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter

Mehr

4. Sortieren 4.1 Vorbemerkungen

4. Sortieren 4.1 Vorbemerkungen . Seite 1/21 4. Sortieren 4.1 Vorbemerkungen allgemeines Sortierproblem spezielle Sortierprobleme Ordne a 1,..., a n so um, dass Elemente in aufsteigender Reihenfolge stehen. Die a i stammen aus vollständig

Mehr

Exponentielle Suche 4/26/10. Beweis für. Situation: Idee: suche zunächst "rechten Rand" r, so dass k < Ar Algo: Analyse:

Exponentielle Suche 4/26/10. Beweis für. Situation: Idee: suche zunächst rechten Rand r, so dass k < Ar Algo: Analyse: Beweis für 9 Exponentielle Situation: n sehr groß esuchtes i, mit Ai = k, ist relativ klein Idee: suche zunächst "rechten Rand" r, so dass k < Ar Algo: 1 2 4 8 i 16 Index r = 1 while A[r] < key: r *= 2

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

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Heaps Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 469 Prioritätswarteschlange Problem Häufig ist das Prinzip einer einfachen Warteschlangen-Datenstruktur

Mehr

Punkt-in-Polygon-Suche Übersicht

Punkt-in-Polygon-Suche Übersicht Folie 1 von 19 Punkt-in-Polygon-Suche Übersicht Praxisbeispiel/Problemstellung Zählen von Schnittpunkten Schnitt einer Halbgerade mit der Masche Aufwandsbetrachtung Streifenkarte Vorgehen und Eigenschaften

Mehr

> Parallele Systeme Übung: 4. Übungsblatt Philipp Kegel Wintersemester 2012/2013. Parallele und Verteilte Systeme, Institut für Informatik

> Parallele Systeme Übung: 4. Übungsblatt Philipp Kegel Wintersemester 2012/2013. Parallele und Verteilte Systeme, Institut für Informatik > Parallele Systeme Übung: 4. Übungsblatt Philipp Kegel Wintersemester 2012/2013 Parallele und Verteilte Systeme, Institut für Informatik Inhaltsverzeichnis 2 1 Besprechung des 4. Übungsblattes Aufgabe

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

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren I. Kapitel 7. Sortieren und Suchen Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Geometrie II Tiago Joao Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Inhalt Koordinatenkompression Beispiel: SafeJourney Typische compress-funktion Bereichssuche

Mehr

2. Hausübung Algorithmen und Datenstrukturen

2. Hausübung Algorithmen und Datenstrukturen Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 7.4.009. Hausübung Algorithmen und Datenstrukturen Sommersemester 009 Abgabetermin: Montag, 04.05.009, 10:00 Uhr 1

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Merge-Sort Anwendbar für

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015 Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter

Mehr

Sortieralgorithmen. Direkte Sortierverfahren & Shellsort, Quicksort, Heapsort. Vorlesung Algorithmen und Datenstrukturen 2 im SS 2004

Sortieralgorithmen. Direkte Sortierverfahren & Shellsort, Quicksort, Heapsort. Vorlesung Algorithmen und Datenstrukturen 2 im SS 2004 Sortieralgorithmen Direkte Sortierverfahren & Shellsort, Quicksort, Heapsort Vorlesung Algorithmen und Datenstrukturen 2 im SS 2004 Prof. Dr. W. P. Kowalk Universität Oldenburg Algorithmen und Datenstrukturen

Mehr

Tutoraufgabe 1 (Sortieralgorithmus):

Tutoraufgabe 1 (Sortieralgorithmus): Prof. aa Dr. Ir. Joost-Pieter Katoen Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung 4 (Abgabe 2..2) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Sortieralgorithmus):

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Prioritätswarteschlangen Maike Buchin 18. und 23.5.2017 Prioritätswarteschlange Häufiges Szenario: dynamische Menge von Objekten mit Prioritäten, z.b. Aufgaben, Prozesse, in der

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

Untere Schranke für allgemeine Sortierverfahren

Untere Schranke für allgemeine Sortierverfahren Untere Schranke für allgemeine Sortierverfahren Prinzipielle Frage: wie schnell kann ein Algorithmus (im worst case) überhaupt sein? Satz: Zum einer Folge von n Keys mit einem allgemeinen Sortierverfahren

Mehr

f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2

f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2 Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale

Mehr

Übung Algorithmen I

Übung Algorithmen I Übung Algorithmen I 20.5.15 Christoph Striecks Christoph.Striecks@kit.edu (Mit Folien von Julian Arz, Timo Bingmann und Sebastian Schlag.) Roadmap Organisation Mergesort, Quicksort Dual Pivot Quicksort

Mehr

Tutoraufgabe 1 (Sortieren): Lösung: Datenstrukturen und Algorithmen SS14 Lösung - Übung 4

Tutoraufgabe 1 (Sortieren): Lösung: Datenstrukturen und Algorithmen SS14 Lösung - Übung 4 Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Übung F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Sortieren): a) Sortieren Sie das folgende Array durch Anwendung des Selectionsort-Algorithmus.

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung

Mehr

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min TU Ilmenau, Fakultät für Informatik und Automatisierung FG Komplexitätstheorie und Effiziente Algorithmen Univ.-Prof. Dr. M. Dietzfelbinger, Dipl.-Ing. C. Mattern Klausur Algorithmen und Datenstrukturen

Mehr

Informatik I (D-ITET)

Informatik I (D-ITET) Ablauf Informatik I (D-ITET) Übungsstunde 5, 26.10.2009 simonmayer@student.ethz.ch ETH Zürich Nachbesprechung Übung 3 Besprechung/Vertiefung der Vorlesung [21.10.2009] Vorbesprechung Übung 5 2.c) Test

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

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012 Algorithmen und Datenstrukturen Tafelübung 14 Jens Wetzl 8. Februar 2012 Folien Keine Garantie für Vollständigkeit und/oder Richtigkeit Keine offizielle Informationsquelle LS2-Webseite Abrufbar unter:

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

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen und Algorithmen D-INFK Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 217 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Graphen und Bäume 2. Binäre Suchbäume 3. AVL-Bäume 4. Algorithmen und Datenstrukturen 2 Agenda

Mehr

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen: HeapSort Allgemeines Sortieralgorithmen gehören zu den am häufigsten angewendeten Algorithmen in der Datenverarbeitung. Man hatte daher bereits früh ein großes Interesse an der Entwicklung möglichst effizienter

Mehr

Sortieren und Suchen. Hallo Welt Seminar Jochen Gierling

Sortieren und Suchen. Hallo Welt Seminar Jochen Gierling Sortieren und Suchen Hallo Welt Seminar 2008 Jochen Gierling Übersicht I II III IV V Problem des Sortierens und Suchens, Anwendungen und Motivation Sortieralgorithmen Suchalgorithmen Range Minimum Query

Mehr

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85 Inhaltsverzeichnis Vorwort 13 Umfang 14 Einsatz als Unterrichtsmittel 14 Algorithmen mit Praxisbezug 15 Programmiersprache 16 Danksagung 17 Vorwort des Java-Beraters 18 Hinweise zu den Übungen 19 Teil

Mehr

1. Aufgabe (6 Punkte): Java-Programmierung (Arrays)

1. Aufgabe (6 Punkte): Java-Programmierung (Arrays) Der folgende Mitschrieb wurde von Prof. Alexa am 16.07.2008 als Probeklausur in der MPGI2 Vorlesung gezeigt und wurde auf http://www.basicinside.de/2008/node/94 veröffentlicht. Die Abschrift ist unter

Mehr

Inhaltsverzeichnis. Teil 1 Grundlagen 23

Inhaltsverzeichnis. Teil 1 Grundlagen 23 Inhaltsverzeichnis Vorwort 11 Umfang 12 Einsatz als Unterrichtsmittel 12 Algorithmen mit Praxisbezug 13 Programmiersprache 14 Danksagung 15 Vorwort des C++-Beraters 16 Hinweise zu den Übungen 21 Teil 1

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

JAVA - Suchen - Sortieren

JAVA - Suchen - Sortieren Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik

Mehr

Bucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt.

Bucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt. Bucketsort Beispiel Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt 1 2 A.78.17 0 1 B.12.17 Sonst: Skalieren ( Aufwand O(n) ) 3.39 2.21.23.26 Idee:

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie sieht -5 in der 4Bit 2-er Komplementdarstellung aus? 2. Berechnen Sie

Mehr

Grundlegende Sortieralgorithmen

Grundlegende Sortieralgorithmen Grundlegende Sortieralgorithmen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch Sortieren in Java Man kann Sortierverfahren in einem imperativem oder einem objektorientierten Stil programmieren.

Mehr

damit hätten wir nach Ende der Schleife: "a[0 n-1] enthält nur Elemente aus a[0 n-1], aber in sortierter Reihenfolge".

damit hätten wir nach Ende der Schleife: a[0 n-1] enthält nur Elemente aus a[0 n-1], aber in sortierter Reihenfolge. Korrektheit Invariante: a[0 k-1] enthält nur Elemente aus a[0 k-1], aber in sortierter Reihenfolge Terminierung: Die Schleife endet mit k=n def insertionsort(a): for k in range( 1, len(a) ): while i >

Mehr

Erinnerung VL vom

Erinnerung VL vom Erinnerung VL vom 09.05.2016 Analyse von Hashtabellen mit verketteten Listen Erwartete Laufzeit O(1) bei zuf. Hashfkt. und falls M O(m) Guter Ersatz (hier) für zuf. Hashfkt.: universelle Hashfunktionen

Mehr

8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A)

8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A) Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld

Mehr

Technische Universität München

Technische Universität München Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Sortier- und Suchalgorithmen Stefan Hengelein Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Motivation Sorting is the most fundamental algorithmic problem

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II Große Übung #1 Arne Schmidt 19.04.2016 Organisatorisches Arne Schmidt Große Übung 2 Homepage Aktuelle Informationen, Hausaufgaben, Slides auf: https://www.ibr.cs.tu-bs.de/courses/ss17/aud2/

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein

Mehr

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg

Mehr

Algorithmen und Datenstrukturen SS09. Foliensatz 15. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Algorithmen und Datenstrukturen SS09. Foliensatz 15. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik Foliensatz 15 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 16 Untere Schranken für das Vergleichsbasierte Sortieren TU

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Abteilung für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Abteilung für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Abteilung für Algorithmen und Datenstrukturen 186.114 Algorithmen und Datenstrukturen 1 UE 2.0 186.099 Programmiertechnik und theoretische

Mehr

Kapitel 2: Sortier- und Selektionsverfahren Gliederung

Kapitel 2: Sortier- und Selektionsverfahren Gliederung Gliederung 1. Laufzeit von Algorithmen 2. Sortier- und Selektionsverfahren 3. Paradigmen des Algorithmenentwurfs 4. Ausgewählte Datenstrukturen 5. Algorithmische Geometrie 6. Randomisierte Algorithmen

Mehr

2 Sortieren durch Vergleichen Eingabefolge a 1, a 2,..., a n 2, 1, 3 Sortieralg. Für festes n ist ein vergleichsbasierter Sortieralg. charakterisiert

2 Sortieren durch Vergleichen Eingabefolge a 1, a 2,..., a n 2, 1, 3 Sortieralg. Für festes n ist ein vergleichsbasierter Sortieralg. charakterisiert 1 Algorithmen und Datenstrukturen Wintersemester 2014/15 9. Vorlesung Sortieren in Linearzeit Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Sortieren durch Vergleichen Eingabefolge a 1, a 2,...,

Mehr

NAME, VORNAME: Studiennummer: Matrikel:

NAME, VORNAME: Studiennummer: Matrikel: TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.

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

Kapitel 8 Fortgeschrittene Sortieralgorithmen

Kapitel 8 Fortgeschrittene Sortieralgorithmen Kapitel 8 Fortgeschrittene Sortieralgorithmen Zur Erinnerung: in Kapitel 6 Elementare Sortierverfahren Sortierverfahren, die auf Vergleichen von Werten basieren. Aufwand zum Sortieren von Feldern von n

Mehr

Robert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky

Robert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky Robert Sedgewick Algorithmen in Java Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen Java-Beratung durch Michael Schidlowsky 3., überarbeitete Auflage \ PEARSON ein Imprint von Pearson Education München

Mehr

Sortieralgorithmen. Selection Sort

Sortieralgorithmen. Selection Sort intuitivster Suchalgorithmus Sortieralgorithmen Selection Sort In jedem Schritt wird das kleinste Element im noch unsortierten Array gesucht und ans Ende des bisher sortierten Teilarrays gehangen 3 1 4

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo g@accaputo.ch 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,

Mehr

ContainerDatenstrukturen. Große Übung 4

ContainerDatenstrukturen. Große Übung 4 ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne

Mehr

Termine für Übungstests. Kap. 3 Sortieren HeapSort ff Priority Queues. Motivation. Überblick. Analyse SiftDown

Termine für Übungstests. Kap. 3 Sortieren HeapSort ff Priority Queues. Motivation. Überblick. Analyse SiftDown Kap. Sortieren..5 HeapSort ff..6 Priority Queues Professor Dr. Vorlesung am Do 7.5. entfällt wegen FVV um Uhr Lehrstuhl für Algorithm Engineering, LS Fakultät für nformatik, TU Dortmund 7. VO DAP SS 009

Mehr

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders 26.5.2010 svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe:

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group

Mehr

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Bereichsabfragen II. 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.07.2012 Objekttypen in Bereichsabfragen y0 y x x0 Bisher

Mehr

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Bereichsabfragen II. 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.07.2012 Objekttypen in Bereichsabfragen y0 y0 y x x0 Bisher

Mehr

Programmiertechnik II

Programmiertechnik II 2007 Martin v. Löwis Priority Queues and Heapsort 2007 Martin v. Löwis 2 Priority Queue Abstrakter Datentyp Inhalt: Elemente mit Priorität Operationen: Einfügen: Angabe des Elements und seiner Priorität

Mehr

Robert Sedgewick. Algorithmen in Java. »il 1-4 Grundlagen Datenstrykturen Sortleren Suchen. java-beratung durch Michael Schidlowsky

Robert Sedgewick. Algorithmen in Java. »il 1-4 Grundlagen Datenstrykturen Sortleren Suchen. java-beratung durch Michael Schidlowsky Robert Sedgewick Algorithmen in Java»il 1-4 Grundlagen Datenstrykturen Sortleren Suchen java-beratung durch Michael Schidlowsky 3., überarbeitete Auflage PEARSON ein Imprint von Pearson Education München

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

lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.

lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist. Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Aufgabe 1 (O-Notation): Beweisen oder widerlegen Sie die folgenden Aussagen: (3 + 3 + 4 = 10 Punkte)

Mehr

Übung Datenstrukturen. Sortieren

Übung Datenstrukturen. Sortieren Übung Datenstrukturen Sortieren Aufgabe 1 Gegeben sei nebenstehender Sortieralgorithmus für ein Feld a[] ganzer Zahlen mit N Elementen: a) Um welches Sortierverfahren handelt es sich? b) Geben Sie möglichst

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Tiefensuche: Die globale Struktur Der gerichtete oder ungerichtete Graph G werde durch seine Adjazenzliste A repräsentiert. Im Array besucht wird vermerkt,

Mehr

Kapitel 2. Sortieren. Adressenverwaltung (lexikographisch) Treerlisten bei Suchanfragen (Relevanz) Verdeckung (z-koordinate) ...

Kapitel 2. Sortieren. Adressenverwaltung (lexikographisch) Treerlisten bei Suchanfragen (Relevanz) Verdeckung (z-koordinate) ... Kapitel 2 Sortieren Das Sortieren ist eines der grundlegenden Probleme in der Informatik. Es wird geschätzt, dass mehr als ein Viertel aller kommerzieller Rechenzeit auf Sortiervorgänge entfällt. Einige

Mehr

Dies ist gerade der konstruktive Schritt beim Aufbau von Binomialbäumen.

Dies ist gerade der konstruktive Schritt beim Aufbau von Binomialbäumen. Linken von Bäumen: Zwei Bäume desselben Wurzel-Rangs werden unter Einhaltung der Heap-Bedingung verbunden. Sind k 1 und k 2 die Wurzeln der zwei zu linkenden Bäume, so wird ein neuer Baum aufgebaut, dessen

Mehr

Grundlagen der Programmierung 2. Sortierverfahren

Grundlagen der Programmierung 2. Sortierverfahren Grundlagen der Programmierung 2 Sortierverfahren Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 30. Mai 2006 Sortieren Ziel: Bringe Folge von Objekten in eine Reihenfolge

Mehr

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Datenstrukturen und Algorithmen 2. Klausur SS 2001 UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking

Mehr

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen 5. Compiler Gliederung 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume

Mehr

Algo-Animation. Konstruktion der Partition: eigentliche Kunst / Arbeit bei Quicksort. Resultat: Partition A=A 1 WA 2 A 1 W A 2.

Algo-Animation. Konstruktion der Partition: eigentliche Kunst / Arbeit bei Quicksort. Resultat: Partition A=A 1 WA 2 A 1 W A 2. Algo-Animation Konstruktion der Partition: eigentliche Kunst / Arbeit bei Quicksort 1. Wahl eines Elementes W im Array (heißt Pivot-Element) 2. Suchen eines i von links mit A[i]>W 3. Suchen eines j von

Mehr

Suchen und Sortieren (Die klassischen Algorithmen)

Suchen und Sortieren (Die klassischen Algorithmen) Suchen und Sortieren (Die klassischen Algorithmen) Lineare Suche und Binäre Suche (Vorbedingung und Komplexität) Sortieralgorithmen (allgemein) Direkte Sortierverfahren (einfach aber langsam) Schnelle

Mehr

Zeichenketten. Michael Fularczyk Michael Fularczyk Zeichenketten / 41

Zeichenketten. Michael Fularczyk Michael Fularczyk Zeichenketten / 41 Zeichenketten Michael Fularczyk 17.05.2011 Michael Fularczyk Zeichenketten 17.05.2011 1 / 41 Inhalt Zeichenketten Zeichensätze Darstellung Suchverfahren naive Stringsuche Knuth-Morris-Pratt Boyer-Moore

Mehr

Suchen und Sortieren

Suchen und Sortieren Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles

Mehr