Algorithmen & Datenstrukturen. 3. Suchen
|
|
- Lisa Beck
- vor 6 Jahren
- Abrufe
Transkript
1 Algorithmen & Datenstrukturen 3. Suchen 1
2 Exponentielle Suche Gesucht wird ein Element mit Schlüssel k. Die exponentielle Suche eignet sich zum Suchen in nach den Schlüsselwerten sortierten Feldern, deren Länge nicht bekannt ist. Bestimme in exponentiell wachsenden Schritten einen Bereich, in dem der Schlüssel liegen muss (erster Index ist 1): i = 1; while (k > a[i].key) i = 2*i; Danach gilt: a[i/2].key < k a[i].key Dieser Bereich wird mittels binärer Suche durchsucht. 2
3 Exponentielle Suche: Beispiel Wir suchen den Schlüssel k = 42 im folgenden Feld: a: (1) bestimme den Bereich, in dem k liegen muss: a: i = (2) binäre Suche im Bereich a[i/2+1]... a[i]: mid = (9 + 16) / 2 = 12 mid = ( ) / 2 =
4 Exponentielle Suche: Laufzeit Voraussetzung: Werte sind paarweise verschieden (dies ist z.b. dann gegeben, wenn Schlüsselwerte gesucht werden, Telefonnummer, Matrikelnummer, Personalnummer, usw.) Schlüssel wachsen mindestens so stark wie die Indices die Bereichsbestimmung erfolgt in log 2 (k) Schritten der zu durchsuchende Bereich hat höchstens k Zahlen und kann in Zeit log 2 (k) durchsucht werden insgesamt ergibt sich also eine Laufzeit von Θ(log(k)) Falls die Folge auch gleiche Werte enthalten darf, ist keine Laufzeitabschätzung möglich. 4
5 Lineare Suche und binäre Suche In Kapitel 1.2 haben wir ausführlich die lineare (Elemente nacheinander lesen) und die binäre (rekursive, immer mit dem mittleren Element vergleichen) Suche besprochen und die Komplexitäten im besten, mittleren und schlechtesten Fall berechnet. Es ergab sich linear: O best = O(1), O avg = O(n), O worst = O(n) binäre: O best = O(1), O avg = O(log(n)), O worst = O(log(n)) 5
6 Interpolations-Suche Idee: Schätze die Position des Elements mit Schlüssel k. Beispiel: Im Telefonbuch steht der Name Zimmermann weit hinten, wohingegen Brockmann eher am Anfang steht. Sei l linke Grenze, r rechte Grenze des Suchbereichs: bei der binären Suche wurde der Index des nächsten zu inspizierenden Elements bestimmt als m = l (r l). bei der Interpolationssuche inspiziere als nächstes das Element auf Position m = l+ k a[l].key (r l). a[r].key a[l].key 6
7 Interpolations-Suche: Beispiel (a) gesucht: k = a: l = 0 r = 15 m = 0 + (42 1) / (98 1) * (15 0) = a: l = 7 r = 15 m = 7 + (42 12) / (98 12) * (15 7) = 9 7
8 Interpolations-Suche: Beispiel (b) gesucht: k = a: l = 10 r = 15 m = 10 + (42 27) / (98 27) * (15 10) = a: l = 12 r = 15 m = 12 + (42 39) / (98 39) * (15 12) = 12 8
9 Interpolations-Suche: Beispiel (c) gesucht: k = a: l = 13 r = 15 m = 13 + (42 42) / (98 42) * (15 13) = 13 Im worst-case hat das Verfahren eine lineare Laufzeit, also Θ(n) bei n Schlüsselwerten. Beispiel: k = 10 und F = 1,2,3,4,5,6,7,8,9,10,1000 9
10 Interpolations-Suche: Laufzeit Im Mittel werden log(log(n)) + 1 Schlüsselvergleiche ausgeführt [1], aber dieser Vorteil geht durch die auszuführenden arithmetischen Operationen oft verloren. Im best-case wird jedes Element sofort gefunden, also Θ(1) bei n Schlüsselwerten. Beispiel mit 9 gleichverteilten Elementen F = 10,12,14,16,18,20,22,24,26 m = 0+ k a[0].key a[8].key a[0].key (8 0) = k = k 10 2 [1] A.C. Yao and F.F. Yao: The complexity of searching an ordered random table. Proceedings of the Symposium on Foundations of Computer Science,
11 Hash-Verfahren (1) Schlüsselsuche durch Berechnung der Array-Indices! Idee: bei einer Menge von Werten K {0,1,...,m 1} = U verwende ein Array A der Länge m mit Indices von 0 bis m 1 und speichere die Schlüssel wie folgt: A[k] = { x falls x.key K und x.key = k nil sonst suchen, einfügen und löschen in Θ(1) Schritten Problem: Wertebereich kann sehr groß sein 8-stellige Namen mehr als Werte 11
12 Hash-Verfahren (2) Lösung: verwende eine Hash-Funktion h, um den Wertebereich U, speziell die Menge der Schlüsselwerte K, auf die Zahlen 0,...,l 1 abzubilden, also h : U {0,...,l 1}. K U Hash-Funktion i.allg. nicht injektiv: verschiedene Schlüssel werden auf dieselbe Hash-Adresse abgebildet Kollision Hash-Funktion wird zum Platzieren und Suchen verwendet, muss einfach/effizient zu berechnen sein 12
13 Hash-Verfahren (3) Schlüssel, die nicht als Zahlen interpretiert werden können, müssen vorher geeignet umgerechnet werden. Beispiel: 5 Zeichenketten der Länge 3 Die ASCII-Darstellung wird als Binärzahl interpretiert. Interpretiere die Binärzahlen als Ziffern einer Zahl zur Basis 256, z.b. i2 = = = Input k 1 k 2 k 3 k h(k) = k mod 11 h(k) = k mod 13 i i ii iii i_
14 Hash-Verfahren (4) Hash-Verfahren muss zwei Forderungen genügen: 1. es sollen möglichst wenige Kollisionen auftreten 2. Adress-Kollisionen müssen effizient aufgelöst werden Wahl der Hash-Funktion: soll die zu speichernden Datensätze möglichst gleichmäßig auf den Speicherbereich verteilen, um Adress-Kollisionen zu vermeiden Häufungen in der Schlüsselverteilung sollen sich nicht auf die Verteilung der Adressen auswirken es gilt: wenn eine Hash-Funktion πn/2 Schlüssel auf eine Tabelle der Größe n abbildet, dann gibt es meist eine Kollision (für n = 365 ist πn/2 23, 23 Personen auf deren Geburtstage abgebildet) 14
15 Hash-Funktion: Division-Rest-Methode Methode: Der Schlüssel wird ganzzahlig durch die Länge der Hash- Tabelle dividiert. Der Rest wird als Index verwendet: h(k) = k mod m zu beachten: m soll keinen kleinen Teiler haben! m soll keine Potenz der Basis des Zahlensystems sein! Beispiel: für m = 2 r hängt der Hash-Wert nur von den letzten r Bits ab wähle m als Primzahl, die nicht nah an einer Potenz der Basis des Zahlensystems liegt. Beispiel: m = 761, aber nicht: m = 509 (nah an 2 9 ) oder m = 997 (nah an 10 3 ) 15
16 Hash-Funktion: Multiplikative Methode Sei m = 2 r eine Zweierpotenz, d.h. es können die Werte 0...,2 r 1 angenommen werden. Bei einer Wortgröße w wähle eine Zahl a so, dass 2 w 1 < a < 2 w ist, und wähle für h(k) Anmerkungen: h(k) = (a k mod 2 w ) >> (w r) Wähle a nicht zu nah an 2 w bzw. 2 w 1 Modulo-Operation und Rechts-Shift ist schnell gute Ergebnisse für a w (goldener Schnitt) Beispiel: Für w = 8, r = 3, a = 191 und k = 23 erhalten wir *
17 Hash-Verfahren: Verkettung der Überläufer Probleme treten auf beim Einfügen, wenn die berechnete Hash-Adresse nicht leer ist bei der Suche, wenn der berechnete Platz ein anderes Element enthält T: i h(61) = h(32) = h(7) = i % Kollisionsauflösung: Die Überläufer können in einer linearen Liste verkettet werden, die an den Hash-Tabelleneintrag angehängt wird. 17
18 Verkettung der Überläufer: Bewertung (1) Die durchschnittliche Anzahl der Einträge in h(k) ist n/m, wenn n Einträge durch die Hash-Funktion gleichmäßig auf m Listen verteilt werden. Belegungsfaktor: α = n m Mittlere Laufzeit bei erfolgreicher Suche: beim Einfügen des j-ten Schlüssels ist die durchschnittliche Listenlänge j 1 m bei einer späteren Suche nach dem j-ten Schlüssel betrachten wir also im Durchschnitt 1+ j 1 m Einträge, wenn stets am Listenende eingefügt wird und keine Elemente gelöscht wurden C = 1 n n j=1 ( 1+ j 1 m ) = 1+ n 1 2m 1+ n 2m 18
19 Verkettung der Überläufer: Bewertung (2) in der Regel gilt n O(m) (die Größe der Hash-Tabelle ist ungefähr so groß wie die Anzahl der Datensätze) α = n m = O(m) m O(1) zum Vergleich: binäre Suche hat Laufzeit Θ(log(n)) plus Aufwand Θ(n log(n)) zum Sortieren der Datensätze Problem: verkettete Listen sind umständlich zu Programmieren und dynamische Speicheranforderung ist teuer. Lösung: speichere alle Datensätze innerhalb eines Arrays 19
20 Offene Hash-Verfahren (1) Idee: Speichere die Überläufer in der Hash-Tabelle, nicht in zusätzlichen Listen ist die Hash-Adresse h(k) belegt, so wird systematisch eine Ausweichposition gesucht die Folge der zu betrachtenden Speicherplätze für einen Schlüssel nennt man Sondierungsfolge die Hash-Funktion hängt vom Schlüssel und von der Anzahl durchgeführter Platzierungsversuche ab: h : U {0,...,m 1} {0,...,m 1} die Sondierungsfolge muss eine Permutation der Zahlen 0,...,m 1 sein, damit alle Einträge der Hash-Tabelle genutzt werden können 20
21 Offene Hash-Verfahren (2) Anmerkungen: beim Einfügen und Suchen wird dieselbe Sondierungsfolge durchlaufen beim Löschen wird der Datensatz nicht gelöscht, sondern nur als gelöscht markiert (der Wert wird ggf. bei späterem Einfügen überschrieben) je voller die Tabelle wird, umso schwieriger wird das Einfügen neuer Schlüssel 21
22 Lineares Sondieren Zu einer gegebenen Hash-Funktion h (k) sei h(k,i) = (h (k)+i) mod m. i ist die Anzahl der Kollisionen für einen Key. Beispiel: betrachte das Einfügen der Schlüssel 12,55,5,15,2,47 für m = 7 mit h (k) = k mod 7 und h(k,i) = (k mod 7+i) mod 7 = (k +i) mod mod 7 = mod 7 = mod 7 = mod 7 = mod 7 = mod 7 = 5 22
23 Quadratisches Sondieren (1) Zu einer gegebenen Hash-Funktion h (k) sei h(k,i) = (h (k)+( 1) i i/2 2 ) mod m. bedeutet aufrunden, z.b. 0.5 = 1 Ohne Beweis: Wenn m eine Primzahl der Form 4i+3 ist, werden alle möglichen Schlüssel erreicht. Die Reihenfolge der Durchläufe ist h(k,0) = h (k) mod m h(k,1) = (h (k)+( 1) 1 1/2 2 ) mod m = (h (k) 1) mod m h(k,2) = (h (k)+( 1) 2 2/2 2 ) mod m = (h (k)+1) mod m h(k,3) = (h (k)+( 1) 3 3/2 2 ) mod m = (h (k) 4) mod m 23
24 Quadratisches Sondieren (2) In der Literatur finden sie unterschiedliche Vorzeichen bei den Sondierungsfunktionen Beispiel: betrachte das Einfügen der Schlüssel 12,55,5,15,2,47 für m = 7 mit h(k,i) = (k +( 1) i i/2 2 ) mod mod 7 = mod 7 = mod 7 = mod 7 = mod 7 = mod 7 = (5 9) mod 7 = 3 24
25 Double Hashing (1) Zu zwei gegebenen Hash-Funktionen h 1 (k) und h 2 (k) sei h(k,i) = (h 1 (k)+i h 2 (k)) mod m. Für die Form h(k,i) = (k+i (1+k mod m 2 )) mod m 1 und m 1 2 = m 2 werden alle möglichen Schlüsselwerte erreicht. Beispiel: betrachte die Hash-Funktionen m = 7, h 1 (k) = k mod 7 und h 2 = 1+k mod 5: h(k,i) = (k +i (1+k mod 5)) mod 7. Die Reihenfolge der Durchläufe ist h(k,0) = (k +0 (1+k mod 5)) mod 7 h(k,1) = (k +1 (1+k mod 5)) mod 7 h(k,2) = (k +2 (1+k mod 5)) mod 7 25
26 Double Hashing (2) Beispiel: betrachte das Einfügen der Schlüssel 12,55,5,15,2,47 und h(k,i) = (k +i (1+k mod 5)) mod mod 7 = mod 7 = mod 7 = mod 7 = mod 7 = mod 7 = Alle Verfahren lassen sich noch leicht beschleunigen, wenn häufiger gesucht als eingefügt wird. 26
27 Suchbäume (1) Eine Alternative für Suchprobleme sind Suchbäume (siehe Kapitel 1) Voraussetzung für die schnelle Suche: der Suchbaum muss ausgeglichen sein, d.h. die Blätter unterscheiden sich in ihrer Stufe höchstens um 1. Die Anzahl der Suchschritte in einem ausgeglichenen Suchbaum ist proportional zum Logarithmus der Datenzahl. Die Anzahl der Knoten in einem binären Baum der Höhe T (Wurzel hat Höhe 0) ist maximal k = T 1 i=0 2 i = 2 T 1 27
28 Suchbäume (2) Umgekehrt braucht ein binärer Baum, wenn er k Knoten aufnehmen soll, eine Höhe von mindestens T = log 2 (k+1) (aufrunden) Beispiel: T = 20 k max = 2 (20) 1 = Knoten Jeder Knoten wird nach maximal 20 Schritten erreicht. Sogenannte optimale Suchbäume berücksichtigen beim Aufbau eine Wahrscheinlichkeit, mit der ein Schlüssel gesucht wird, und werden mittels dynamischer Programmierung aufgebaut. 28
29 Operationen für Bäume (1) Suchen eines Elements Das Suchen eines Elements setzt eine Ordnung voraus. Ist der Key des Elements gleich dem Key des Knotens, dann ist das Element gefunden. Ist der Key des Elements kleiner (größer) als der Key des Knotens, suche im linken (rechten) Teilbaum. Ist der (Teil-)Baum leer, ist das Element nicht vorhanden. 29
30 Operationen für Bäume (2) Einfügen eines neuen Knotens in einen Suchbaum Ist der Baum leer, dann wird das neue Element die Wurzel. Falls sortiertes Einfügen, führe rekursiv aus: Ist der Key des Elements kleiner (größer) als der Key des Knotens, füge in den linken (rechten) Teilbaum ein. Erzeuge neuen Knoten an dem Blatt, bei dem einfügt wird, schreibe die Daten in den Knoten und setzte rechten bzw. linken Zeiger von der Einfügestelle auf den neuen Knoten. 30
31 Operationen für Bäume (3) Der Aufbau eines Baums hängt von der Reihenfolge des Einfügens ab. Reihenfolge Einzufügender Knoten Reihenfolge Einzufügender Knoten
32 Operationen für Bäume (4) Löschen eines Elements Hat das Element nur einen oder keinen Teilbaum, ersetzte das Element durch Teilbaum bzw. NULL. Zu löschender Knoten:
33 Operationen für Bäume (5) Hat das zu löschende Element zwei Teilbäume, dann ersetze es durch das größte (kleinste) Element seines linken (rechten) Teilbaums. Dieses Element hat keinen rechten (linken) Teilbaum und wird ersetzt wie beschrieben auf der letzten Folie. Zu löschender Knoten:
34 Operationen für Bäume (6) Ausgleichen eines Baums Notwendig für eine schnelle Suche: der Baum muss ausgeglichen sein. Für die Anzahl der Knoten n in einem Baum der Höhe T gilt log 2 (n+1) T n Bei einem vollständig ausgeglichenen Baum liegen alle Blätter auf einer Ebene bzw. die vorletzte Ebene ist voll belegt. 34
35 Operationen für Bäume (7) Ausgleichen eines Baums Rekursiver Algorithmus zum Ausgleichen eines Baums: Finde das in der Ordnung mittlere Element eines Baums Speichere das Element als Wurzel Verfahre auf gleiche Art mit den Teilbäumen. Sehr aufwendiges Verfahren, dass nach jedem Löschen bzw. Hinzufügen eines Knotens wiederholt werden müsste. Schwächere Definition von Ausgeglichenheit nach Adelson-Vekskii und Landis (1962) AVL-Bäume. 35
36 AVL-Bäume (1) In einem AVL-Baum unterscheiden sich die Höhen d des linken und des rechten Teilbaums für jeden Knoten höchstens um 1. Es ist günstig, die Differenz der Höhen der Teilbäume bei jedem Knoten zu speichern. d=
37 AVL-Bäume (2) Minimale Anzahl n(t) von Knoten: Ein Minimaler AVL-Baum der Höhe T setzt sich aus einer Wurzel und einem Teilbaum der Höhe T 1 sowie einem Teilbaum der Höhe T 2 zusammen minimal Knotenzahl: n(t) = 1+n(T 1)+n(T 2) = fib(t +1) T+1 t n(t) t Die Höhe eines AVL-Baumes mit n Knoten ist O(log(n)) 37
38 Rebalancieren von AVL-Bäumen (1) Ein AVL-Baum hat die Höhendifferenz-Werte von d = 1,0,1. Einfügen und Löschen von Knoten geschieht wie in Suchbäumen. Durch Einfügen oder Löschen können Knoten mit d = 2 oder d = 2 entstehen. Durch Rotation kann in diesen Fällen die AVL-Bedingung wieder hergestellt werden. Beispiel: LL-Rotation Ein Knoten wird im linken Teilbaum vom linken Teilbaum von K1 eingefügt, wobei K1 der Knoten ist, bei dem anschließend d = 2 auftritt. 38
39 Rebalancieren von AVL-Bäumen (2) K1 d=2 d=0 K2 d=1 K2 K1 d=0 A B C A B C Umhängen des rechten Teilbaums von K2 nach K1 und K2 als neuen Wurzelknoten des Teilbaums setzen. Setze die linke Referenz von K1 auf B. Setze die rechte Referenz von K2 auf K1. 39
40 Rebalancieren von AVL-Bäumen (3) d=1/2 20 0/ / /
41 Rebalancieren von AVL-Bäumen (4) RR-Rotation Wird ein Knoten im rechten Teilbaum vom rechten Teilbaum von K1 eingefügt, wobei K1 der Knoten ist, bei dem anschließend d = 2 auftritt, so wird eine einfache Rotation analog zur LL- Rotation durchgeführt. LR-(RL) Rotation Wird ein Knoten im rechten (linken) Teilbaum vom linken (rechten) Teilbaum von K1 eingefügt, wobei K1 der Knoten ist, bei dem anschließend d = 2 auftritt, so muss eine Doppelrotation durchgeführt werden. 41
42 Rebalancieren von AVL-Bäumen (5) d=-2 K1 d=0 K2 K3 d=0 K1 d=-1 K3 d=1 K2 A B C D A B C D Umhängen des rechten Teilbaums von K2 nach K3 Umhängen des linken Teilbaums von K2 nach K1 Referenzen von K1, K2, K3 neu setzen 42
43 Rebalancieren von AVL-Bäumen (6) Aufwand des Rebalancierens: * Werte der Höhendifferenz aktualisieren: O(log(n)) * Umhängen der Zeiger: O(1) Der Gesamtaufwand zum Einfügen eines Knoten beträgt wie beim vollständig ausgeglichenen Suchbaum O(log(n)). Das Löschen eines Knoten geschieht analog zum Einfügen. Dementsprechend beträgt der Gesamtaufwand zum Löschen eines Knoten ebenfalls nur O(log(n)). Nettes Applet: 43
44 Weitere Bäume (1) 2-3 und Bäume Suchbäume, deren Knoten aus Knoten mit 1,2 oder 3 Schlüsseln sind. Der Grad des Baums ist 4. Alle Blätter liegen auf einer Ebene. Vorteil: Die Bäume sind immer ausgeglichen und ein Suchen ist sehr schnell möglich. Nachteil: Die Bäume müssen umgebaut werden, soll ein weiteres Element in einen vollen Baum eingefügt werden. 44
45 Weitere Bäume (2) Beispiel: Spalte 4-Knoten mit 3 Schlüsseln bei weiterem Schlüssel in der Mitte in zwei 2-Knoten auf und übergeben einen Schlüssel an den Vorgänger. D einfügen E J N A B C F G I K L M O P R J C E N A B D F G I K L M O P R 45
46 Weitere Bäume (3) B-Bäume: Sie stammen von Bayer und McCreight und sind eine Erweiterung der 2-3 bzw Bäume. B + - und B -Bäume der Ordnung m: Motivation für diese Bäume waren Datenmengen, die nicht den Speicher passen. Sie bestehen aus inneren Knoten, in denen jeweils mindestens [m/2] und höchstens [m] Schlüssel - keine Datensätze - gespeichert sind, und aus Blattknoten, die jeweils die Datensätze, auch Blöcke genannt, enthalten. Die Wurzel darf auch weniger als [m/2] Schlüssel enthalten. 46
47 Weitere Bäume (4) Jeder innere Knoten mit n Schlüsseln ist ein (n + 1)-Knoten und enthält (n + 1) Verweise auf weiter führende Teilbäume. Die Blätter liegen alle auf einer Ebene und enthalten die Datensätze und ggf. Verweise auf die benachbarten Blätter (lineare Liste). B + - und B -Bäume werden manchmal für die gleiche Struktur verwendet, ursprünglich unterscheiden Sie sich aber im Verhalten beim Einfügen und Löschen neuer Knoten. Es existieren viele weitere Varianten von B-Bäumen. Anwendung von B-Bäumen: XFS oder ReiserFS von Linux, Verwaltung von Indizes in Datenbanken. 47
Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
MehrDatenstrukturen & 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
MehrAbgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
MehrUntersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe 1 (Güte von Hashfunktionen): Untersuchen Sie, inwiefern sich die folgenden Funktionen
MehrProgrammiertechnik II
Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...
Mehr3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1
3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)
MehrBäume, Suchbäume und Hash-Tabellen
Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche
Mehr14. Rot-Schwarz-Bäume
Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).
MehrÜbung zur Vorlesung Algorithmische Geometrie
Übung zur Vorlesung Algorithmische Geometrie Dipl.-Math. Bastian Rieck Arbeitsgruppe Computergraphik und Visualisierung Interdisziplinäres Zentrum für Wissenschaftliches Rechnen 8. Mai 2012 B. Rieck (CoVis)
Mehr1. 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
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14
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 2. April
MehrAlgorithmen und Datenstrukturen Balancierte Suchbäume
Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrKap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis
Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest
Mehr9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen
9.4 Binäre Suchbäume Erweiterung: Einfügen an der Wurzel Standardimplementierung: Der neue Schlüssel wird am Ende des Suchpfades angefügt (natürlich, weil zuerst festgestellt werden muss, ob der Schlüssel
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
MehrBalancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06
Balancierte Bäume Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06 2 Ziele AVL-Bäume als einen wichtigen Vertreter balancierter
MehrNachtrag zu binären Suchbäumen
Nachtrag zu binären Suchbäumen (nicht notwendigerweise zu AVL Bäumen) Löschen 1 3 2 10 4 12 1. Fall: Der zu löschende Knoten ist ein Blatt: einfach löschen 2. Fall: Der zu löschende Knoten hat ein Nachfolgeelement
MehrSuchen in Listen und Hashtabellen
Kapitel 12: Suchen in Listen und Hashtabellen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Einleitung Lineare Suche Binäre Suche (in sortierten Listen) Hashverfahren
Mehr13. Binäre Suchbäume
1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),
MehrBeispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6
Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer
MehrCopyright, Page 1 of 8 AVL-Baum
www.mathematik-netz.de Copyright, Page 1 of 8 AVL-Baum 1. Motivation und Einleitung Das Suchen, Einfügen und entfernen eines Schlüssels in einem zufällige erzeugten binären Suchbaum mit N Schlüsseln ist
MehrSuchbäume mit inneren Knoten verschiedener Knotengrade.
Was bisher geschah rekursive Datenstrukturen: lineare Datenstrukturen: Liste, Stack, Queue hierarchische Datenstrukturen: Bäume allgemeine Bäume Binäre Bäume Unäre Bäume = Listen Tiefe eines Knotens in
Mehr6-1 A. Schwill Grundlagen der Programmierung II SS 2005
6-1 A. Schwill Grundlagen der Programmierung II SS 25 6. Suchen Suchen = Tätigkeit, in einem vorgegebenen Datenbestand alle Objekte zu ermitteln, die eine best. Bedingung, das Suchkriterium, erfüllen und
MehrDer linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)
Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der
MehrAlgorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.
Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer
MehrBäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1
Bäume 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Inhalt Grundbegriffe: Baum, Binärbaum Binäre Suchbäume (Definition) Typische Aufgaben Suchaufwand Löschen allgemein, Methode Schlüsseltransfer
MehrB-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write
B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write Thomas Maier Proseminar: Ein- / Ausgabe Stand der Wissenschaft Seite 1 von 13 Gliederung 1. Hashtabelle 3 2.B-Baum 3 2.1 Begriffserklärung 3 2.2
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
Mehr1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der
MehrAlgorithmen und Datenstrukturen Suchbaum
Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen
MehrAlgorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 11, Donnerstag, 16.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 11, Donnerstag, 16. Januar 2013 (Balancierte Suchbäume) Junior-Prof. Dr. Olaf Ronneberger
MehrDie mittlere Zeit zum Auffinden eines Elements in einer Hash-Tabelle beträgt, unter realistischen Annahmen, O(1).
Algorithmen und Datenstrukturen 213 9 Hash-Tabellen Viele Anwendungen erfordern dynamische Mengen, für welche die sog. Wörterbuch-Operationen INSERT, SEARCH und DELETE verfügbar sind. Beispiel: Symboltabelle
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
MehrIdee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10
Binäre Bäume Bäume gehören zu den wichtigsten Datenstrukturen in der Informatik. Sie repräsentieren z.b. die Struktur eines arithmetischen Terms oder die Struktur eines Buchs. Bäume beschreiben Organisationshierarchien
MehrVorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz
Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)
MehrKapitel 2: Analyse der Laufzeit von Algorithmen Gliederung
Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)
MehrKapitel 5: Dynamisches Programmieren Gliederung
Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen
MehrKap. 4.2: Binäre Suchbäume
Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:
MehrEine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder
Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element
MehrSortierverfahren für Felder (Listen)
Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es
MehrDatenstruktur, die viele Operationen dynamischer Mengen unterstützt
Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)
Mehr2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form.
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Vollständige Induktion): Finden Sie eine geschlossene Form für die
MehrÜbersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen
Datenstrukturen & Algorithmen Übersicht Rot-schwarz Bäume Eigenschaften Einfügen Matthias Zwicker Universität Bern Frühling 2009 2 Rot-schwarz Bäume Binäre Suchbäume sind nur effizient wenn Höhe des Baumes
Mehr! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.
Unterschiede von DBMS und files Speichern von Daten! DBMS unterstützt viele Benutzer, die gleichzeitig auf dieselben Daten zugreifen concurrency control.! DBMS speichert mehr Daten als in den Hauptspeicher
MehrFolge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12
Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben
MehrKapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2013/14. Prof. Dr. Sándor Fekete
Kapitel 4.8-4.11: Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2013/14 Prof. Dr. Sándor Fekete 1 4.6 AVL-Bäume 2 4.8 Rot-Schwarz-Bäume Rudolf Bayer Idee: Verwende Farben, um den
MehrKapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4.8-4.11: Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.6 AVL-Bäume 4.8 Rot-Schwarz-Bäume Idee: Verwende Farben, um den Baum vertikal zu
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
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes
MehrWas bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch
Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch verschiedene Datenstrukturen: lineare Datenstrukturen: Array,
MehrDATENSTRUKTUREN UND ZAHLENSYSTEME
DATENSTRUKTUREN UND ZAHLENSYSTEME RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: ralf@cs.uu.nl Homepage: http://www.cs.uu.nl/~ralf/ March, 2001 (Die Folien finden
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2015/16 12. Vorlesung Hashing Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Übungen Begründen Sie grundsätzlich alle Behauptungen außer die Aufgabe
MehrÜbrigens: um den Algorithmus im Unterricht einzuführen, sind keine Formeln notwendig! Warum reicht die normale ASCII-Codierung nicht aus?
Huffman-Code Dieser Text ist als Hintergrundinformation ausschliesslich für die Lehrperson gedacht. Der Text ist deshalb eher technisch gehalten. Er lehnt sich an das entsprechende Kapitel in "Turing Omnibus"
MehrÜbungen zu Programmierung I - Blatt 8
Dr. G. Zachmann A. Greß Universität Bonn Institut für Informatik II 1. Dezember 2004 Wintersemester 2004/2005 Übungen zu Programmierung I - Blatt 8 Abgabe am Mittwoch, dem 15.12.2004, 15:00 Uhr per E-Mail
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 2. Vorlesung Prof. Dr. Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Einfache Suchverfahren Lineare Listen Sequentielle Suche
MehrName:... Vorname:... Matrikel-Nr.:... Unterschrift:...
Studiengang Bachelor of Computer Science Modulprüfung Praktische Informatik 1 Wintersemester 2010 / 2011 Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Hinweise: 1.) Schreiben Sie Ihren Namen und
MehrAVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:
AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls
MehrEinführung in die Informatik I Kapitel II.3: Sortieren
1 Einführung in die Informatik I Kapitel II.3: Sortieren Prof. Dr.-Ing. Marcin Grzegorzek Juniorprofessur für Mustererkennung im Institut für Bildinformatik Department Elektrotechnik und Informatik Fakultät
MehrKapitel 8: Physischer Datenbankentwurf
8. Physischer Datenbankentwurf Seite 1 Kapitel 8: Physischer Datenbankentwurf Speicherung und Verwaltung der Relationen einer relationalen Datenbank so, dass eine möglichst große Effizienz der einzelnen
MehrTutoraufgabe 1 (Vollständige Induktion): Tutoraufgabe 2 (Rotationen): Datenstrukturen und Algorithmen SS15 Übungsblatt 5 (Abgabe 3.6.
Prof. aa Dr. Ir. Joost-Pieter Katoen Allgemeine Hinweise: Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Die Hausaufgaben sollen in Gruppen von je - Studierenden aus der gleichen
MehrKONSTRUKTION VON ROT-SCHWARZ-BÄUMEN
KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: ralf@informatik.uni-bonn.de Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume
MehrB-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP
B-Bäume I Annahme: Sei die Anzahl der Objekte und damit der Datensätze. Das Datenvolumen ist zu groß, um im Hauptspeicher gehalten zu werden, z.b. 10. Datensätze auf externen Speicher auslagern, z.b. Festplatte
Mehr11.1 Grundlagen - Denitionen
11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
MehrBinäre Bäume Darstellung und Traversierung
Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.
MehrAmortisierte Analysen
Amortisierte Analysen 26. Mai 2016 1 Einleitung Es gibt viele Datenstrukturen, bei deren Komplexitätsanalyse das Problem auftaucht, dass die Ausführung mancher Operationen Einfluss auf die Komplexität
MehrTutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter
UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Assistenten Brian Amberg Andreas Forster Tutoren Simon Andermatt Lukas Beck Webseite http://informatik.unibas.ch/lehre/hs10/cs101/index.html
MehrBäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.
Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens
MehrKurs 1613 Einführung in die imperative Programmierung
Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i
MehrGrundlagen der Programmierung 2. Bäume
Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)
MehrVorkurs Informatik WiSe 15/16
Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner
MehrRWTH Aachen, Lehrstuhl für Informatik IX Kapitel 3: Suchen in Mengen - Datenstrukturen und Algorithmen - 51
RWTH Aacen, Lerstul für Informatik IX Kapitel 3: Sucen in Mengen - Datenstrukturen und Algoritmen - 51 Sucbäume Biser betractete Algoritmen für Suce in Mengen Sortierte Arrays A B C D - Nur sinnvoll für
Mehr368 4 Algorithmen und Datenstrukturen
Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist
MehrKlausur Datenstrukturen und Algorithmen SoSe 2012
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Klausur Datenstrukturen und Algorithmen SoSe 2012 Vorname: Nachname: Studiengang (bitte genau einen
MehrSuchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative
MehrTutorium Algorithmen & Datenstrukturen
June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten
MehrProgrammiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
MehrFaktorisierung ganzer Zahlen mittels Pollards ρ-methode (1975)
Dass das Problem, die Primzahlen von den zusammengesetzten zu unterscheiden und letztere in ihre Primfaktoren zu zerlegen zu den wichtigsten und nützlichsten der ganzen Arithmetik gehört und den Fleiss
MehrTutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte]
UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Bernoullistrasse 16 CH 4056 Basel Assistenten Bernhard Egger Andreas Forster Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 5, Donnerstag, 20.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 5, Donnerstag, 20. November 2014 (Wie baut man eine Hash Map, Universelles Hashing)
MehrKapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung
MehrKapitel 2. Zahlensysteme, Darstellung von Informationen
Kapitel 2 Zahlensysteme, Darstellung von Informationen 1 , Darstellung von Informationen Ein Computer speichert und verarbeitet mehr oder weniger große Informationsmengen, je nach Anwendung und Leistungsfähigkeit.
MehrLenstras Algorithmus für Faktorisierung
Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit
MehrDatenstrukturen 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
MehrInformatik I 4. Kapitel Suchen in sequentiellen Listen
Informatik I 4. Kapitel Rainer Schrader Zentrum für Angewandte Informatik Köln 21. Mai 2008 1 / 55 2 / 55 Szenario Suchen in Daten gehört zu den wichtigsten Operationen etwa Suchen nach: Stichworten in
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen
MehrAlgorithmentheorie Randomisierung. Robert Elsässer
Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten
Mehrt r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )
Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen
MehrÜbersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.
Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.
MehrLernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.
6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 8 Übung zur Vorlesung Grundlagen: Datenbanken im WS14/15 Harald Lang (harald.lang@in.tum.de) http://www-db.in.tum.de/teaching/ws1415/grundlagen/
MehrTutoraufgabe 1 (2 3 4 Bäume):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Übungsblatt (Abgabe.0.0) F. Corzilius, S. Schupp, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je bis Studierenden aus
Mehr2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik
Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,
Mehr