Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund
|
|
- Dagmar Martin
- vor 5 Jahren
- Abrufe
Transkript
1 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 Dr. Lars Hildebrand EiniLogWing/ WiMa- Stand WS 12/13 1
2 Thema EiniLogWIng/ WiMa Kapitel 5 Algorithmen und In diesem Kapitel: Prolog Arrays Sortieren Rekursive Kapitel 5 Algorithmen und Konstruktion von Datentypen: Arrays Algorithmen: Unterlagen Gumm/Sommer, Kapitel 2.7 & 2.8 Sortieren 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 Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 2
3 Übersicht Begriffe EiniLogWIng/ WiMa Kapitel 5 Algorithmen und In diesem Kapitel: Prolog Arrays Sortieren Rekursive Spezifikationen, Algorithmen, formale Sprachen, Grammatik Programmiersprachenkonzepte Grundlagen der Programmierung Algorithmen und Felder Sortieren Rekursive (Baum, binärer Baum, Heap) Heapsort Objektorientierung Einführung Vererbung Anwendung Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 3
4 Binärer Baum Definition: Binärer Baum 1. Der "leere" Baum ist ein binärer Baum mit der Knotenmenge. EiniLogWIng/ WiMa Kapitel 5 Algorithmen und 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.) In diesem Kapitel: Prolog Arrays Sortieren Rekursive 3. Jeder binäre Baum B lässt sich durch endlich häufige Anwendung von 1.) oder 2.) erhalten. Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 4
5 Binärer Baum Sprech-/Darstellungsweisen(im Falle 2.)): Sei B = (w, B 1, B 2 ) binärer Baum EiniLogWIng/ WiMa Kapitel 5 Algorithmen und w heißt Wurzel, B 1 linker und B 2 rechter Unterbaum. w Wurzel B 1 B 2 In diesem Kapitel: Prolog Arrays Sortieren Rekursive linker Unterbaum rechter Unterbaum Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 5
6 Binärer Baum Darstellung eines Beispiels nach Definition: B 1 = (k 1,, (k 2, (k 3,, ), )). EiniLogWIng/ WiMa Kapitel 5 Algorithmen und k 1 k 2 In diesem Kapitel: Prolog Arrays Sortieren Rekursive k 3 Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 6
7 Terminologie binärer Bäume Wurzel EiniLogWIng/ WiMa Kapitel 5 Algorithmen und innerer Knoten Blatt In diesem Kapitel: Prolog Arrays Sortieren Rekursive Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 7
8 Knotenmarkierter binärer Baum EiniLogWIng/ WiMa Kapitel 5 Algorithmen und 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. In diesem Kapitel: Prolog Arrays Sortieren Rekursive Alternative: Markierung von Kanten. Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 8
9 Knotenmarkierter binärer Baum Beispiel EiniLogWIng/ WiMa Kapitel 5 Algorithmen und 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. 24 k 2 In diesem Kapitel: Prolog Arrays Sortieren 16 k 1 18 k 3 Rekursive Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 9
10 Definition: Heap EiniLogWIng/ WiMa Kapitel 5 Algorithmen und 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). In diesem Kapitel: Prolog Arrays Sortieren Rekursive Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 10
11 Beispiel: Heap EiniLogWIng/ WiMa Binärbaum Alle Ebene, bis auf letzte vollständig gefüllt Links-vollständig gefüllt Knotenmarkierung der Wurzel kleiner als die der Kinder Kapitel 5 Algorithmen und In diesem Kapitel: Prolog Arrays Sortieren Rekursive Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 11
12 Abstrakte Datentypen Grobidee zum abstrakten Datentyp Heap EiniLogWIng/ WiMa Kapitel 5 Algorithmen und In diesem Kapitel: Prolog Arrays Sortieren Rekursive 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... Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 12
13 Implementierung über Feld Darstellung: Binärer Baum <--> Feld S[1] EiniLogWIng/ WiMa Kapitel 5 Algorithmen und 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] In diesem Kapitel: Prolog Arrays Sortieren Rekursive Array S[1] S[2] S[3] S[4] S[12] S[13] S[] S[15] Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 13
14 Implementierung über Feld EiniLogWIng/ WiMa Kapitel 5 Algorithmen und Beziehung Baum-Feld-Darstellung: Der Inhalt des i-tenknotens in der Baumdarstellung wird im i-ten Feldelement abgelegt. Das bedeutet: Baum ebenenweisevon links nach rechts eintragen. Das Feldelement a[0] wird nicht verwendet! Beobachtung: Die Söhne des Knotens i in einem Heap haben die Knotennummern In diesem Kapitel: Prolog Arrays Sortieren Rekursive 2i : linker Sohn 2i + 1 : rechter Sohn Beweis : Induktiv Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12
15 Implementierung über Feld Ebene 0 S[1] EiniLogWIng/ WiMa Ebene 1 S[2] S[3] Kapitel 5 Algorithmen und 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] In diesem Kapitel: Prolog Arrays Sortieren Rekursive 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] Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 15
16 Implementierung über Feld EiniLogWIng/ WiMa Kapitel 5 Algorithmen und 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] In diesem Kapitel: Prolog Arrays Sortieren Rekursive Array S[3] S[12] S[13] S[] S[15] Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 16
17 Heap-Eigenschaft EiniLogWIng/ WiMa Kapitel 5 Algorithmen und Die Heapeigenschaft wird über die Inhalte definiert Ein Feld amit nganzen Zahlen realisiert einen Heap, falls a[i/2] a[i]für alle i= 2,..., ngilt. 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]. In diesem Kapitel: Prolog Arrays Sortieren Rekursive Analog wird der Maximum-Heap definiert Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 17
18 Beobachtungen EiniLogWIng/ WiMa Kapitel 5 Algorithmen und Ein Feld S[1... n] ist ein Heap ab l, wenn der Teilbaummit 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 Teilbaumbesteht 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] In diesem Kapitel: Prolog Arrays Sortieren Rekursive 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] Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 18
19 Operation Einfügen: Algorithmus Eingabe: Heap amit nelementen, neues Element x EiniLogWIng/ WiMa Kapitel 5 Algorithmen und In diesem Kapitel: Prolog Arrays Sortieren Rekursive Ergebnis: Heap amit n+1elementen, xseiner Größe gemäß eingefügt Vorgehensweise: Schaffe neuen Knoten n+1, setze a[n+1] = x Füge also neuen Knoten mit Beschriftung xin den Heap (evtl.noch an falscher Stelle) ein Sortiere an richtige Stelle ein Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 19
20 Operation Einfügen: Algorithmus "An richtige Stelle einsortieren" - Idee: EiniLogWIng/ WiMa Kapitel 5 Algorithmen und 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 In diesem Kapitel: Prolog Arrays Sortieren Rekursive Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12
21 Beispiel Ausgangssituation Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 21
22 Beispiel Einfügen der Zahl 11 in den Heap Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 22
23 Beispiel Linksvollständigkeit bietet nur eine Position Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 23
24 Beispiel Binärer Baum? Ja. Test auf Heap-Eigenschaften Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 24
25 Beispiel Binärer Baum? Ja. Test auf Heap-Eigenschaften Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 25
26 Beispiel Vater größer als Sohn Positionen vertauschen Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 26
27 Beispiel Knoten mit Inhalt 18 an der richtigen Position Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 27
28 Beispiel Knoten mit Inhalt 11 an der richtigen Position? Rekursiver Aufruf! Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 28
29 Beispiel Binärer Baum? Ja. Test auf Heap-Eigenschaften Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 29
30 Beispiel Vater größer als Sohn Positionen vertauschen Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 30
31 Beispiel Knoten mit Inhalt 12 an der richtigen Position Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 31
32 Beispiel Knoten mit Inhalt 11 an der richtigen Position? Rekursiver Aufruf! Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 32
33 Beispiel Binärer Baum? Ja. Test auf Heap-Eigenschaften Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 33
34 Beispiel Binärer Baum? Ja. Heap? Ja Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 34
35 Beispiel Fertig! Neuer Heap mit eingefügtem Inhalt Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 35
36 Beispiel mit Array Ausgangssituation Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 36
37 Beispiel mit Array Einfügen der Zahl 11 in den Heap Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 37
38 Beispiel mit Array Linksvollständigkeit bietet nur eine Position Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 38
39 Beispiel mit Array Binärer Baum? Ja. Test auf Heap-Eigenschaften Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 39
40 Beispiel mit Array Binärer Baum? Ja. Test auf Heap-Eigenschaften Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 40
41 Beispiel mit Array Vater größer als Sohn Positionen vertauschen Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 41
42 Beispiel mit Array Knoten mit Inhalt 18 an der richtigen Position Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 42
43 Beispiel mit Array Knoten mit Inhalt 11 an der richtigen Position? Rekursiver Aufruf! Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 43
44 Beispiel mit Array Binärer Baum? Ja. Test auf Heap-Eigenschaften Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 44
45 Beispiel mit Array Vater größer als Sohn Positionen vertauschen Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 45
46 Beispiel mit Array Knoten mit Inhalt 12 an der richtigen Position Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 46
47 Beispiel mit Array Knoten mit Inhalt 11 an der richtigen Position? Rekursiver Aufruf! Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 47
48 Beispiel mit Array Binärer Baum? Ja. Test auf Heap-Eigenschaften Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 48
49 Beispiel mit Array Binärer Baum? Ja. Heap? Ja Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 49
50 Beispiel mit Array Fertig! Neuer Heap mit eingefügtem Inhalt Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 50
51 Code: Einsortieren In das Feld heapfeld wird richtig einsortiert gemäß: EiniLogWIng/ WiMa void einsortieren(int knotennr) { if (knotennr > 1){ int vaternr = knotennr/2; Kapitel 5 Algorithmen und } } if (heapfeld[knotennr] < heapfeld[vaternr]) { tausche(knotennr, vaternr); einsortieren(vaternr); } In diesem Kapitel: Prolog Arrays Sortieren Rekursive Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 51
52 Entfernen des kleinsten Elements Grundlegender Schritt für das Sortieren EiniLogWIng/ WiMa Kapitel 5 Algorithmen und 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 In diesem Kapitel: Prolog Arrays Sortieren Rekursive Idee einer effizienteren Lösung Verwende genau diese Information Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 52
53 Erzeugung eines Heap EiniLogWIng/ WiMa Wie behält man in diesem Fall einen Heap? Beobachtung Jedes Blatt erfüllt die Heapbedingung Allgemeinere Situation: Kapitel 5 Algorithmen und Wurzel erfüllt die Heap-Bedingung In diesem Kapitel: Prolog Arrays Sortieren Rekursive Unterbäume sollen die Heap-Bedingung erfüllen Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 53
54 Entfernen des kleinsten Elements Grundlegender Schritt für das Sortieren EiniLogWIng/ WiMa Kapitel 5 Algorithmen und 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 In diesem Kapitel: Prolog Arrays Sortieren Rekursive Idee einer effizienteren Lösung Verwende genau diese Information Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 54
55 Beispiel Entfernen der Wurzel (kleinstes Element) Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 55
56 Beispiel Füllen der Wurzel mit dem letzten Element Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 56
57 Beispiel Knoten mit Index 13 wird nicht mehr benötigt Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 57
58 Beispiel Binärer Baum? Ja. Heap? Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 58
59 Beispiel Knoten mit Index 2 ist der kleinere Sohn. Vater ist größer Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 59
60 Beispiel Tausche Vater (Index 1) mit kleinerem Sohn (Index 2) Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 60
61 Beispiel Knoten mit Index 1, Inhalt 6 am richtigen Platz Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 61
62 Beispiel Rekursiver Aufruf mit geändertem Sohn Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 62
63 Beispiel Binärer Baum? Ja. Heap? Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 63
64 Beispiel Knoten mit Index 4 ist der kleinere Sohn. Vater ist größer Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 64
65 Beispiel Tausche Vater (Index 2) mit kleinerem Sohn (Index 4) Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 65
66 Beispiel Knoten mit Index 2, Inhalt 7am richtigen Platz Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 66
67 Beispiel Rekursiver Aufruf mit geändertem Sohn Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 67
68 Beispiel Binärer Baum? Ja. Heap? Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 68
69 Beispiel Knoten mit Index 8 ist der kleinere Sohn. Vater ist größer Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 69
70 Beispiel Tausche Vater (Index 4) mit kleinerem Sohn (Index 8) Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 70
71 Beispiel Knoten mit Index 4, Inhalt 9am richtigen Platz Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 71
72 Beispiel Rekursiver Aufruf mit geändertem Sohn Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 72
73 Beispiel Der hat keine Nachfolger. Fertig Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 73
74 Code: Heapify 01 void heapify(int k) { 02 int lsnr = 2*k, // Nummer des linken Sohns 03 rsnr = 2*k + 1, // Nummer des rechten Sohns 04 selsohn; // Nummer des selektierten Sohns if (lsnr <= anzahlknoten && rsnr > anzahlknoten) { // es gibt 07 if (heapfeld[lsnr] < heapfeld[k] { // keinen 08 tausche(k, lsnr); // rechten 09 } // Sohn 10 } 11 else if (rsnr <= anzahlknoten) { 12 sel Sohn =(heapfeld[lsnr]<heapfeld [rsnr]? lsnr : rsnr ); 13 // Wähle den Sohn mit der kleineren Markierung aus. // Bei Gleichheit wähle den rechten Sohn if (heapfeld[selsohn] < heapfeld[k]) { // Heap 17 tausche (k, selsohn); // Bedingung 18 heapify(selsohn); // verletzt. 19 } } 21 } Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 74
75 Anwendung 1: Heapsort Aufgabe: Benutze Heap zum (effizienten) Sortieren. EiniLogWIng/ WiMa Kapitel 5 Algorithmen und 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. In diesem Kapitel: Prolog Arrays Sortieren Rekursive Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 75
76 Anwendung 1: Heapsort Warum? Laufzeitenvergleich (mittlere Laufzeit) EiniLogWIng/ WiMa Kapitel 5 Algorithmen und In diesem Kapitel: Prolog Arrays Sortieren Rekursive zu sortierende naives Sortierverfahren Heapsort Elemente Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 76
77 Vergleich der beiden Verfahren EiniLogWIng/ WiMa Kapitel 5 Algorithmen und In diesem Kapitel: Prolog Arrays Sortieren Rekursive Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12/13 77
78 EiniLogWIng/ WiMa Kapitel 5 Algorithmen und 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 In diesem Kapitel: Prolog Arrays Sortieren Rekursive Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 78
79 Übersicht Vielen Dank für Ihre Aufmerksamkeit! Nächste Termine Nächste Vorlesung WiMa.12.12, 08:15 Nächste Vorlesung LogWIng , 08:30 Bleiben Sie noch 5 Minuten Dr. Lars Hildebrand Eini LogWing / WiMa -Stand WS 12 79
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
MehrEINI 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
MehrEINI 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
MehrDr. 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
MehrEINI 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
MehrEINI 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
MehrEinfü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
MehrEINI 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
MehrCopyright, 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
Mehr7. 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
MehrEINI 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
MehrSuchen 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,
MehrSortieren 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
MehrGliederung. 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
MehrEINI 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
MehrEINI 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
MehrDr. 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Ü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
MehrEINI 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
MehrAlgorithmen 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
MehrVorlesung 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
MehrAlgorithmen 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
MehrProgrammiertechnik 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
Mehr8. 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.
Mehr5.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
MehrDefinition 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
MehrHeapsort / 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
Mehr18. 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
MehrSORTIEREN 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
MehrDiskrete 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
MehrAlgorithmen 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
MehrDatenstrukturen & 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
MehrKap. 3: Sortieren (3)
Kap. 3: Sortieren (3) Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund 6. VO DAP2 SS 2009 30. April 2009 Überblick Quick-Sort Analyse von Quick-Sort Quick-Sort
MehrWerden 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.
MehrPrü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
MehrSuchen 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
MehrEINI 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
MehrNatü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
MehrAuswählen nach Rang (Selektion)
Auswählen nach Rang (Selektion) Geg.: Folge X von n Schlüsseln, eine Zahl k mit k n Ges.: ein k-kleinster Schlüssel von X, also den Schlüssel x k für X sortiert als x x 2 L x n trivial lösbar in Zeit O(kn)
Mehr(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
Mehr9. 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
MehrTutoraufgabe 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):
Mehr3.2. Divide-and-Conquer-Methoden
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE 3.2. Divide-and-Conquer-Methoden Divide-and-Conquer-Methoden Einfache Sortieralgorithmen reduzieren die Größe des noch
MehrDatenstrukturen. 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,
MehrLernmodul 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
MehrKapitel 3: Sortierverfahren Gliederung
Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen
MehrKapitel 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
MehrWiederholung. 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
MehrPrä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
MehrInformatik 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
Mehr14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften
Heapsort, Quicksort, Mergesort 14. Sortieren II 14.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 397 398 Heapsort [Max-]Heap 7 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum
Mehrf 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
MehrAlgorithmen 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
MehrAbgabe: (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,
MehrTechnische 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
MehrHeapsort, Quicksort, Mergesort. 8. Sortieren II
209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] Heapsort 211 Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:
MehrGrundlagen 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).
MehrKap. 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.
MehrInformatik 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,
MehrWS 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
MehrRotation. 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
Mehr1. 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
MehrAnwendungsbeispiel 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
MehrAlgorithmen 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)
Mehr8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften
Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit
MehrHeapsort, Quicksort, Mergesort. 8. Sortieren II
209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 211 Heapsort Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:
MehrStud.-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
MehrAlgorithmen 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
MehrEINI LW. 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
MehrClausthal 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
MehrInformatik 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:
MehrDatenstrukturen. 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
MehrAlgorithmen 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
MehrContainerDatenstrukturen. 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
MehrInformatik II - Tutorium 12
Informatik II - Tutorium 12 Vincent Becker vincent.becker@inf.ethz.ch 23.05.2018 Vincent Becker 24.05.2018 1 Reversi-Turnier 30.5.2018 Deadline für Einreichung SONNTAG NACHT!!! Umfrage Bitte an Umfrage
Mehr8.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
MehrDatenstrukturen. 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
MehrTechnische 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
MehrEinfü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
MehrAufgaben, 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
MehrEINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17
EINI LW/ 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 http://ls14-www.cs.tu-dortmund.de
MehrDatenstrukturen 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
MehrInformatik 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 =
MehrInformatik II - Übung 12
Informatik II - Übung 12 Katja Wolff katja.wolff@inf.ethz.ch Übungsblatt 11 1) Sortieren mit Suchbäumen 2) Zeitkomplexität 3) Ein neuer Rechner! 4) Ein Springer auf dem Schachbrett Informatik II Übung
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 018/19 6. Vorlesung Prioritäten setzen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I - 4 Heute: Wir bauen eine Datenstruktur Datenstruktur: Konzept,
Mehr