EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

Größe: px
Ab Seite anzeigen:

Download "EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12"

Transkript

1 EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu EINI Kap. 5 Arrays Internes Sortieren 1

2 EINI Kap. 5 Arrays Internes Sortieren 2 Thema Kapitel 5 Algorithmen und Datenstrukturen Konstruktion von Datentypen: Algorithmen: Arrays Sortieren Unterlagen Gumm/Sommer, Kapitel 2.7 & 2.8 Echtle/Goedicke, Einführung in die Programmierung mit Java, dpunkt Verlag, Kapitel 4 Doberkat/Dißmann, Einführung in die objektorientierte Programmierung mit Java, Oldenbourg, Kapitel 3.4 & 4.1

3 EINI Kap. 5 Arrays Internes Sortieren 3 Übersicht Begriffe Spezifikationen, Algorithmen, formale Sprachen, Grammatik Programmiersprachenkonzepte Grundlagen der Programmierung Algorithmen und Datenstrukturen Felder Sortieren Rekursive Datenstrukturen (Baum, binärer Baum, Heap) Heapsort Objektorientierung Einführung Vererbung Anwendung

4 EINI Kap. 5 Arrays Internes Sortieren 4 Binärer Baum Definition: Binärer Baum 1. Der "leere" Baum ist ein binärer Baum mit der Knotenmenge. 2. Seien B i binäre Bäume mit den Knotenmengen K i, i = 1,2. Dann ist auch B = (w, B 1, B 2 ) ein binärer Baum mit der Knotenmenge K = {w} K 1 K 2. ( bezeichnet disjunkte Vereinigung.) 3. Jeder binäre Baum B lässt sich durch endlich häufige Anwendung von 1.) oder 2.) erhalten.

5 EINI Kap. 5 Arrays Internes Sortieren 5 Binärer Baum Sprech-/Darstellungsweisen (im Falle 2.)): Sei B = (w, B 1, B 2 ) binärer Baum w heißt Wurzel, B 1 linker und B 2 rechter Unterbaum. w Wurzel B 1 B 2 linker Unterbaum rechter Unterbaum

6 EINI Kap. 5 Arrays Internes Sortieren 6 Binärer Baum Darstellung eines Beispiels nach Definition: B 1 = (k 1,, (k 2, (k 3,, ), )). k 1 k 2 k 3

7 EINI Kap. 5 Arrays Internes Sortieren 7 Terminologie Binäre Bäume Wurzel innerer Knoten Blatt

8 EINI Kap. 5 Arrays Internes Sortieren 8 Knotenmarkierter binärer Baum Definition: Sei M eine Menge. (B, km) ist ein knotenmarkierter binärer Baum (mit Markierungen aus M) : 1. B ist binärer Baum (mit Knotenmenge K = K(B)) 2. km: K --> M Abbildung. (Markierung/Beschriftung der Knoten k K mit Elementen m M) Jedem Knoten wird ein Element aus der Menge M zugeordnet. Alternative: Markierung von Kanten.

9 EINI Kap. 5 Arrays Internes Sortieren 9 Knotenmarkierter binärer Baum Beispiel M := Z, Z := Menge der ganzen Zahlen Damit existiert auf M eine Ordnung! "Übliche" Darstellung der Knotenbeschriftung km durch "Anschreiben" der Beschriftung an/in die Knoten k 1 k 2 k 3

10 EINI Kap. 5 Arrays Internes Sortieren 10 Definition: Heap Ein Heap (Haufen) ist ein knotenmarkierter binärer Baum, für den gilt: Die Markierungsmenge ist geordnet. Der binäre Baum ist links-vollständig. Die Knotenmarkierung der Wurzel ist kleiner oder gleich der Markierung des linken resp. rechten Sohnes (, sofern vorhanden). Die Unterbäume der Wurzel sind Heaps. An der Wurzel steht das kleinste (eines der kleinsten) Element(e).

11 EINI Kap. 5 Arrays Internes Sortieren 11 Beispiel: Heap Binärbaum Alle Ebene, bis auf letzte vollständig gefüllt Links-vollständig gefüllt Knotenmarkierung der Wurzel kleiner als die der Kinder

12 Abstrakte Datentypen Grobidee zum abstrakten Datentyp Heap Datenstruktur siehe Folien vorher Operationen Init Einfügen eines Elementes in einen Heap Entfernen eines der kleinsten Elemente/des kleinsten Elementes aus dem Heap und Hinterlassen eines Rest- Heaps Zudem: Heap ist leer?/ Heap ist voll? Drucken... EINI Kap. 5 Arrays Internes Sortieren 12

13 EINI Kap. 5 Arrays Internes Sortieren 13 Implementierung über Feld Darstellung: Binärer Baum <--> Feld S[1] S[2] S[3] S[4] S[5] S[6] S[7] S[8] S[9] S[10] S[11] S[12] S[13] S[] S[15] Array S[1] S[2] S[3] S[4] S[12] S[13] S[] S[15]

14 EINI Kap. 5 Arrays Internes Sortieren Implementierung über Feld Beziehung Baum-Feld-Darstellung: Der Inhalt des i-ten Knotens in der Baumdarstellung wird im i-ten Feldelement abgelegt. Das bedeutet: Baum ebenenweise von links nach rechts eintragen. Das Feldelement a[0] wird nicht verwendet! Beobachtung: Die Söhne des Knotens i in einem Heap haben die Knotennummern 2i : linker Sohn 2i + 1 : rechter Sohn Beweis : Induktiv

15 EINI Kap. 5 Arrays Internes Sortieren 15 Implementierung über Feld Ebene 0 S[1] Ebene 1 S[2] S[3] Ebene 2 S[4] S[5] S[6] S[7] Ebene 3 S[8] S[9] S[10] S[11] S[12] S[13] S[] S[15] Array S[1] S[2] S[3] S[4] S[12] S[13] S[] S[15] In Tiefe i befinden sich die Schlüssel S[2 i 2 i+1-1]

16 Implementierung über Feld linker Sohn von S[i] S[2i] rechter Sohn von S[i] S[2i+1] Vater von S[i] S[ i/2 ] Ebene 0 Ebene 1 S[3] Ebene 2 S[6] S[7] Ebene 3 S[8] S[9] S[10] S[11] S[12] S[13] S[] S[15] Array S[3] S[12] S[13] S[] S[15] EINI Kap. 5 Arrays Internes Sortieren 16

17 EINI Kap. 5 Arrays Internes Sortieren 17 Heap-Eigenschaft Die Heapeigenschaft wird über die Inhalte definiert Ein Feld a mit n ganzen Zahlen realisiert einen Heap, falls a[i/2] a[i] für alle i= 2,..., n gilt. Der Wert des Vaters ist höchstens so groß, wie der der Söhne Dabei ist "/" als ganzzahlige Division zu verstehen. z.b. 5/2 = 2 Verzicht auf Floor( )-Funktion in der Notation In einem (Minimum-)Heap, realisiert durch das Feld a, steht das kleinste Element immer in a[1]. Analog wird der Maximum-Heap definiert

18 EINI Kap. 5 Arrays Internes Sortieren 18 Beobachtungen Ein Feld S[1... n] ist ein Heap ab l, wenn der Teilbaum mit Wurzel l ein Heap ist. Jedes Feld ist ein Heap ab n/2 + 1, denn alle Einträge mit Indices ab n/2 + 1 haben keine Kinder, d.h. der Teilbaum besteht nur aus einer Wurzel Ist S[1... n] ein Heap ab l, so ist S ebenfalls ein Heap ab 2l und 2l + 1. S[1] S[2] S[3] S[4] S[5] S[6] S[7] S[8] S[9] S[10] S[11] S[12] S[13] S[] S[15] S[1] S[2] S[3] S[4] S[12] S[13] S[] S[15]

19 EINI Kap. 5 Arrays Internes Sortieren 19 Operation Einfügen: Algorithmus Eingabe: Heap a mit n Elementen, neues Element x Ergebnis: Heap a mit n+1 Elementen, x seiner Größe gemäß eingefügt Vorgehensweise: Schaffe neuen Knoten n+1, setze a[n+1] = x Füge also neuen Knoten mit Beschriftung x in den Heap (evtl.noch an falscher Stelle) ein Sortiere an richtige Stelle ein

20 EINI Kap. 5 Arrays Internes Sortieren Operation Einfügen "An richtige Stelle einsortieren" - Idee: einsortieren(k) : k bezeichnet Knotennummer ist k=1, so ist nichts zu tun, ist k>1, so geschieht folgendes: falls a[k/2] > a[k], vertausche a[k/2] mit a[k], rufe einsortieren(k/2) auf Verletzung der Heap-Eigenschaft einsortieren ist somit eine rekursive Funktion

21 EINI Kap. 5 Arrays Internes Sortieren 21 Beispiel Ausgangssituation

22 EINI Kap. 5 Arrays Internes Sortieren 22 Beispiel Einfügen der Zahl 11 in den Heap

23 EINI Kap. 5 Arrays Internes Sortieren 23 Beispiel Linksvollständigkeit bietet nur eine Position

24 EINI Kap. 5 Arrays Internes Sortieren 24 Beispiel Binärer Baum? Ja. Test auf Heap-Eigenschaften

25 EINI Kap. 5 Arrays Internes Sortieren 25 Beispiel Binärer Baum? Ja. Test auf Heap-Eigenschaften

26 EINI Kap. 5 Arrays Internes Sortieren 26 Beispiel Vater größer als Sohn Positionen vertauschen

27 EINI Kap. 5 Arrays Internes Sortieren 27 Beispiel Knoten mit Inhalt 18 an der richtigen Position

28 EINI Kap. 5 Arrays Internes Sortieren 28 Beispiel Knoten mit Inhalt 11 an der richtigen Position? Rekursiver Aufruf!

29 EINI Kap. 5 Arrays Internes Sortieren 29 Beispiel Binärer Baum? Ja. Test auf Heap-Eigenschaften

30 EINI Kap. 5 Arrays Internes Sortieren 30 Beispiel Vater größer als Sohn Positionen vertauschen

31 EINI Kap. 5 Arrays Internes Sortieren 31 Beispiel Knoten mit Inhalt 12 an der richtigen Position

32 EINI Kap. 5 Arrays Internes Sortieren 32 Beispiel Knoten mit Inhalt 11 an der richtigen Position? Rekursiver Aufruf!

33 EINI Kap. 5 Arrays Internes Sortieren 33 Beispiel Binärer Baum? Ja. Test auf Heap-Eigenschaften

34 EINI Kap. 5 Arrays Internes Sortieren 34 Beispiel Binärer Baum? Ja. Heap? Ja

35 EINI Kap. 5 Arrays Internes Sortieren 35 Beispiel Fertig! Neuer Heap mit eingefügtem Inhalt

36 EINI Kap. 5 Arrays Internes Sortieren 36 Beispiel mit Array Ausgangssituation

37 EINI Kap. 5 Arrays Internes Sortieren 37 Beispiel mit Array Einfügen der Zahl 11 in den Heap

38 EINI Kap. 5 Arrays Internes Sortieren 38 Beispiel mit Array Linksvollständigkeit bietet nur eine Position

39 EINI Kap. 5 Arrays Internes Sortieren 39 Beispiel mit Array Binärer Baum? Ja. Test auf Heap-Eigenschaften

40 EINI Kap. 5 Arrays Internes Sortieren 40 Beispiel mit Array Binärer Baum? Ja. Test auf Heap-Eigenschaften

41 EINI Kap. 5 Arrays Internes Sortieren 41 Beispiel mit Array Vater größer als Sohn Positionen vertauschen

42 EINI Kap. 5 Arrays Internes Sortieren 42 Beispiel mit Array Knoten mit Inhalt 18 an der richtigen Position

43 EINI Kap. 5 Arrays Internes Sortieren 43 Beispiel mit Array Knoten mit Inhalt 11 an der richtigen Position? Rekursiver Aufruf!

44 EINI Kap. 5 Arrays Internes Sortieren 44 Beispiel mit Array Binärer Baum? Ja. Test auf Heap-Eigenschaften

45 EINI Kap. 5 Arrays Internes Sortieren 45 Beispiel mit Array Vater größer als Sohn Positionen vertauschen

46 EINI Kap. 5 Arrays Internes Sortieren 46 Beispiel mit Array Knoten mit Inhalt 12 an der richtigen Position

47 EINI Kap. 5 Arrays Internes Sortieren 47 Beispiel mit Array Knoten mit Inhalt 11 an der richtigen Position? Rekursiver Aufruf!

48 EINI Kap. 5 Arrays Internes Sortieren 48 Beispiel mit Array Binärer Baum? Ja. Test auf Heap-Eigenschaften

49 EINI Kap. 5 Arrays Internes Sortieren 49 Beispiel mit Array Binärer Baum? Ja. Heap? Ja

50 EINI Kap. 5 Arrays Internes Sortieren 50 Beispiel mit Array Fertig! Neuer Heap mit eingefügtem Inhalt

51 EINI Kap. 5 Arrays Internes Sortieren 51 Beispiel Neuer Knoten mit k = 13 einsortieren(13) a[k/2] > a[k]? a[6] > a[13]? 18 > 11? Ja, also tauschen a[6] a[13] einsortieren(6) a[k/2] > a[k]? a[3] > a[6]? 12 > 11? Ja, also tauschen a[3] a[6] einsortieren(3) a[k/2] > a[k]? a[1] > a[3]? 3 > 11? Nein, fertig

52 Code: einsortieren In das Feld heapfeld wird richtig einsortiert gemäß: void einsortieren(int knotennr) { if (knotennr > 1){ int vaternr = knotennr/2; } } if (heapfeld[knotennr] < heapfeld[vaternr]) { tausche(knotennr, vaternr); einsortieren(vaternr); } EINI Kap. 5 Arrays Internes Sortieren 52

53 EINI Kap. 5 Arrays Internes Sortieren 53 Entfernen des kleinsten Elementes Idee einer Hau-Ruck-Lösung: Entfernen des kleinsten Elements Baue einen neuen Heap ohne das erste Element auf z.b. durch sukzessives Einfügen der Elemente in einen neuen Heap Nachteil Berücksichtigt nicht, dass vor dem Entfernen des kleinsten Elements ein Heap vorliegt Idee einer effizienteren Lösung Verwende genau diese Information

54 Erzeugung eines Heaps Wie behält man in diesem Fall einen Heap? Beobachtung Jedes Blatt erfüllt die Heapbedingung Allgemeinere Situation: Wurzel erfüllt die Heap-Bedingung Unterbäume sollen die Heap-Bedingung erfüllen EINI Kap. 5 Arrays Internes Sortieren 54

55 EINI Kap. 5 Arrays Internes Sortieren 55 Erzeugung eines Heaps Idee: Lasse die Wurzel einsinken Vergleiche den Eintrag im Knoten k mit denen seiner Söhne (soweit vorhanden) Falls der Eintrag im Knoten k kleiner oder gleich als diejenigen beider Söhne ist o.k. Falls der Eintrag des Knotens k größer als der kleinere Eintrag beider Söhne ist: Ermittle den Sohn s mit dem kleineren Eintrag, Vertausche den Eintrag des Knotens k mit demjenigen des Sohnes s, Wiederhole die Überlegungen mit diesem Knoten s.

56 EINI Kap. 5 Arrays Internes Sortieren 56 Beispiel Entfernen der Wurzel (kleinstes Element)

57 EINI Kap. 5 Arrays Internes Sortieren 57 Beispiel Füllen der Wurzel mit dem letzten Element

58 EINI Kap. 5 Arrays Internes Sortieren 58 Beispiel Knoten mit Index 13 wird nicht mehr benötigt

59 EINI Kap. 5 Arrays Internes Sortieren 59 Beispiel Binärer Baum? Ja. Heap?

60 EINI Kap. 5 Arrays Internes Sortieren 60 Beispiel Knoten mit Index 2 ist der kleinere Sohn. Vater ist größer

61 EINI Kap. 5 Arrays Internes Sortieren 61 Beispiel Tausche Vater (Index 1) mit kleinerem Sohn (Index 2)

62 EINI Kap. 5 Arrays Internes Sortieren 62 Beispiel Knoten mit Index 1, Inhalt 6 am richtigen Platz

63 EINI Kap. 5 Arrays Internes Sortieren 63 Beispiel Rekursiver Aufruf mit geändertem Sohn

64 EINI Kap. 5 Arrays Internes Sortieren 64 Beispiel Binärer Baum? Ja. Heap?

65 EINI Kap. 5 Arrays Internes Sortieren 65 Beispiel Knoten mit Index 4 ist der kleinere Sohn. Vater ist größer

66 EINI Kap. 5 Arrays Internes Sortieren 66 Beispiel Tausche Vater (Index 2) mit kleinerem Sohn (Index 4)

67 EINI Kap. 5 Arrays Internes Sortieren 67 Beispiel Knoten mit Index 2, Inhalt 7 am richtigen Platz

68 EINI Kap. 5 Arrays Internes Sortieren 68 Beispiel Rekursiver Aufruf mit geändertem Sohn

69 EINI Kap. 5 Arrays Internes Sortieren 69 Beispiel Binärer Baum? Ja. Heap?

70 EINI Kap. 5 Arrays Internes Sortieren 70 Beispiel Knoten mit Index 8 ist der kleinere Sohn. Vater ist größer

71 EINI Kap. 5 Arrays Internes Sortieren 71 Beispiel Tausche Vater (Index 4) mit kleinerem Sohn (Index 8)

72 EINI Kap. 5 Arrays Internes Sortieren 72 Beispiel Knoten mit Index 4, Inhalt 9 am richtigen Platz

73 EINI Kap. 5 Arrays Internes Sortieren 73 Beispiel Rekursiver Aufruf mit geändertem Sohn

74 EINI Kap. 5 Arrays Internes Sortieren 74 Beispiel Der hat keine Nachfolger. Fertig

75 EINI Kap. 5 Arrays Internes Sortieren 75 Code: Heapify void heapify(int k) { int lsnr = 2*k, rsnr = 2*k + 1, selsohn; // Nummer des linken Sohns // Nummer des rechten Sohns // Nummer des selektierten Sohns if (lsnr <= anzahlknoten && rsnr > anzahlknoten) { //es gibt if (heapfeld[lsnr] < heapfeld[k]) { //keinen tausche(k, lsnr); //rechten } //Sohn } else if (rsnr <= anzahlknoten) { selsohn =(heapfeld[lsnr]<heapfeld [rsnr]? lsnr : rsnr ); // wähle den Sohn mit der kleineren Markierung aus. // Bei Gleichheit wähle den rechten Sohn. } } if (heapfeld[selsohn] < heapfeld[k]) { //Heaptausche(k, selsohn); //Bedingung heapify(selsohn); //verletzt }

76 EINI Kap. 5 Arrays Internes Sortieren 76 Anwendung 1: Heapsort Aufgabe: Benutze Heap zum (effizienten) Sortieren. Heapsort arbeitet in zwei Phasen: Aufbau eines Heaps aus einem Feld Schrittweiser Abbau des Heaps Auslesen des Wurzelelementes und Entfernen desselben Legen des "letzten" Elementes in die Wurzel Rekonstruktion der Heap-Bedingung für diese restlichen Elemente.

77 EINI Kap. 5 Arrays Internes Sortieren 77 Zusammenfassung Arrays Datenstruktur zur Abbildung gleichartiger Daten Deklaration Dimensionierung und Zuordnung von Speicher zur Laufzeit Zuweisung: ganzes Array, Werte einzelner Elemente Algorithmen auf Arrays: Beispiel Sortieren naives Verfahren: Minimum bestimmen, entfernen, Restmenge sortieren Heapsort: ähnlich, nur mit Binärbaum über Indexstruktur

78 EINI Kap. 2 Spezifikation Algorithmus Syntax & Semantik 78 EINI sagt Danke! Frohe Weihnachten & guten Rutsch! Nächste Termine Nächste Vorlesung , 08:30 EF-50, HS1 In der Woche finden keine Übungen statt! Erste Übung im neuen Jahr

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 EINI LW/WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund EINI LW/WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 12/13 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18 EINI LogWing/WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16 EINI LW/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund EINI LW/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 12/13 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11 EINI I Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 10/11 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 18/19

Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 18/19 EINI LogWing//MP Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 18/19 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Copyright, Page 1 of 7 Heapsort

Copyright, Page 1 of 7 Heapsort www.mathematik-netz.de Copyright, Page 1 of 7 Heapsort Alle grundlegenden, allgemeinen Sortierverfahren benötigen O(n 2 ) Zeit für das Sortieren von n Schlüsseln. Die kritischen Operationen, d.h. die Auswahl

Mehr

Sortieren II / HeapSort Heaps

Sortieren II / HeapSort Heaps Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: dsal-i1@algo.rwth-aachen.de Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 156, Seite 56 im Skript) Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die letzte Ebene vollständig besetzt ist,

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

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

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

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Heapsort Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das

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

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen B4. Priority Queues und Heaps Marcel Lüthi and Gabriele Röger Universität Basel 28. März 2018 Einführung Kollektion von Elementen Grundlegende Operationen sind Einfügen

Mehr

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18 EINI LogWing/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

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

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

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

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

18. Natürliche Suchbäume

18. Natürliche Suchbäume Wörterbuchimplementationen 1. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Hashing: Implementierung von Wörterbüchern mit erwartet sehr schnellen Zugriffszeiten. Nachteile

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

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

5.5 Prioritätswarteschlangen

5.5 Prioritätswarteschlangen 5.5 Prioritätswarteschlangen LIFO- und FIFO-Warteschlangen entfernen Werte aus der Warteschlange in Abhängigkeit davon, wann sie in diese eingefügt wurden Prioritätswartschlangen interpretieren die Werte

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

SORTIEREN MIT BÄUMEN - HEAPSORT

SORTIEREN MIT BÄUMEN - HEAPSORT 10. Kapitel Teil 3 SORTIEREN MIT BÄUMEN - HEAPSORT Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm Übersicht 1 0. Einführung 1. Algorithmen 2. Eigenschaften von Programmiersprachen 3. Algorithmenparadigmen

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Organisatorisches: Keine Vorlesung nächste Woche wegen

Mehr

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16 Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein

Mehr

9. Natürliche Suchbäume

9. Natürliche Suchbäume Bäume Bäume sind. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Verallgemeinerte Listen: Knoten können mehrere Nachfolger haben Spezielle Graphen: Graphen bestehen aus Knoten

Mehr

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18 EINI LogWing/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen. Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten

Mehr

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

Mehr

Kapitel 12: Induktive

Kapitel 12: Induktive Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter

Mehr

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 12/13 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Sortieralgorithmen Einleitung Heapsort Quicksort 2 Motivation Sortieren ist Voraussetzung für viele Anwendungen Nach

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 7.1 (P) Binomial Heap

Abgabe: (vor der Vorlesung) Aufgabe 7.1 (P) Binomial Heap TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 7 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 15b (13.06.2018) Graphenalgorithmen IV Algorithmen und Komplexität Prims MST-Algorithmus A = while A ist kein Spannbaum do e = u, v ist

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 7. 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

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

Rotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y

Rotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y Die AVL-Eigenschaft soll bei Einfügungen und Streichungen erhalten bleiben. Dafür gibt es zwei mögliche Operationen: -1-2 Rotation Abbildung 3.1: Rotation nach rechts (analog links) -2 +1 z ±1 T 4 Doppelrotation

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

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion Abschnitt 1 Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion Aufgabe 1: Binäre Suchbäume: Iteratives Suchen/Einfügen/Löschen Das Material dieser Übung enthält in der Klasse Tree0 die

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

Kap. 3 Sortieren. 7. VO DAP2 SS Mai Vorlesung am Do 7.5. entfällt wegen FVV um 14 Uhr HeapSort ff 3.1.

Kap. 3 Sortieren. 7. VO DAP2 SS Mai Vorlesung am Do 7.5. entfällt wegen FVV um 14 Uhr HeapSort ff 3.1. Kap. 3 Sortieren 3.1.5 HeapSort ff 3.1.6 Priority Queues Vorlesung am Do 7.5. entfällt wegen FVV um 14 Uhr Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 7.

Mehr

Grundlagen der Algorithmen und Datenstrukturen Kapitel 6

Grundlagen der Algorithmen und Datenstrukturen Kapitel 6 Grundlagen der Algorithmen und Datenstrukturen Kapitel 6 Christian Scheideler + Helmut Seidl SS 2009 25.05.09 Kapitel 6 1 Priority Queue M: Menge von Elementen Jedes Element e identifiziert über key(e).

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

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

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel Algorithmen und Datenstrukturen Bäume M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Baumstrukturen und Ihre Verwendung kennen Grundbegriffe zu Bäumen anwenden können Baumstruktur in C anlegen können Suchbäume

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

Anwendungsbeispiel MinHeap

Anwendungsbeispiel MinHeap Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n

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

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

(Digital) Sorting. October 25, Algorithms & Datastructures 2 Exercises WS 2016

(Digital) Sorting. October 25, Algorithms & Datastructures 2 Exercises WS 2016 (Digital) Sorting October 2, 2016 Algorithms & Datastructures 2 Exercises WS 2016 Dipl.-Ing. University Linz, Institute for Pervasive Computing Altenberger Straße 69, A-4040 Linz kurz@pervasive.jku.at

Mehr

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele.

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. lausthal Informatik II Bäume. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Beispiele Stammbaum. Zachmann Informatik 2 - SS 06 Bäume 2 Stammbaum Parse tree, Rekursionsbaum Unix file hierarchy

Mehr

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Kapitel 3: Elementare Datenstrukturen Mariano Zelke Datenstrukturen 2/18 Einfach verkettete Listen Mariano Zelke Datenstrukturen 3/18 Eine Zeiger-Implementierung

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

Informatik II Vorlesung am D-BAUG der ETH Zürich

Informatik II Vorlesung am D-BAUG der ETH Zürich Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 9, 2.5.2016 [Nachtrag zu Vorlesung : Numerische Integration, Zusammenfassung Objektorientierte Programmierung] Dynamische Datenstrukturen II:

Mehr

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

Algorithmen I. Tutorium 1-5. Sitzung. Dennis Felsing Algorithmen I Tutorium 1-5. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-16 Heaps 1 Heaps Binäre Heaps Erhalten der Heap-Eigenschaft Erzeugen eines

Mehr

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Präsenzübung Datenstrukturen und Algorithmen SS 2014 Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder Präsenzübung Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II und Red-Black-Trees Dr. Georg Sauthoff 1 AG Praktische Informatik July 1, SoSe 2011 1 gsauthof@techfak.uni-bielefeld.de Suchbäume (Indexdatenstrukturen) Zugriff in O(logn)

Mehr

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter Kapitel 7 Fortgeschrittene Datenstrukturen Motivation: Lineare Liste: Suchen eines Elements ist schnell O(log n) Einfügen eines Elements ist langsam

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

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen: 6 Partiell geordnete binäre Bäume: Heap (Haufen) Motivation für manchen Anwendungen nur partielle Ordnung der Elemente statt vollständiger nötig, z.b. - Prioritätsschlange: nur das minimale (oder maximale)

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 Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure 7. Dynamische Datenstrukturen Bäume Informatik II für Verkehrsingenieure Übersicht dynamische Datenstrukturen Wozu? Oft weiß man nicht von Beginn an, wieviele Elemente in einer Datenstruktur untergebracht

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Prioritätswarteschlangen Mariano Zelke Datenstrukturen 2/28 Der abstrakte Datentyp Prioritätswarteschlange : Füge Elemente (mit Prioritäten) ein und entferne

Mehr

Informatik B Sommersemester Musterlösung zur Klausur vom

Informatik B Sommersemester Musterlösung zur Klausur vom Informatik B Sommersemester 007 Musterlösung zur Klausur vom 0.07.007 Aufgabe : Graphen und Graphalgorithmen + + + () Punkte Für eine beliebige positive, ganze Zahl n definieren wir einen Graphen G n =

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

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

Prüfung Algorithmen und Datenstrukturen I

Prüfung Algorithmen und Datenstrukturen I Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IF 3 B Wintersemester 2014/15 Prüfung Algorithmen und Datenstrukturen I Datum : 20.01.2015, 10:30 Uhr

Mehr

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

Mehr

Heapsort. Ziel: Sortieren Feld A[1..n]von nschlüsseln in O(n log n)worst case Zeit(so wie Mergesort), aber ohne Zusatzspeicher(so wie Quicksort).

Heapsort. Ziel: Sortieren Feld A[1..n]von nschlüsseln in O(n log n)worst case Zeit(so wie Mergesort), aber ohne Zusatzspeicher(so wie Quicksort). Heapsort Ziel: Sortieren Feld A[..n]von nschlüsseln in O(n log n)worst case Zeit(so wie Mergesort), aber ohne Zusatzspeicher(so wie Quicksort). Abstrakte Speichere die Schlüssel in A[]in den ersten n Knoten

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

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 7. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@informatik.uni-leipzig.de aufbauend auf den Kursen der letzten Jahre von E. Rahm, G. Heyer,

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr