Fibonacci-Suche. Informatik I. Fibonacci-Suche. Fibonacci-Suche. Einführung. Rainer Schrader. 24. Mai 2005
|
|
- Horst Hochberg
- vor 7 Jahren
- Abrufe
Transkript
1 Fibonacci-Suche Informatik I Einführung Rainer Schrader Zentrum für Angewandte Informatik Köln 4. Mai 005 Grundidee wie bei der Binärsuche, aber andere Aufteilung Fibonacci-Zahlen: F 0 = 0 F 1 = 1 F m = F m 1 + F m für m vereinfachende Annahme: Sei n = F m 1 für geeignetes m. Beispiel für (m = 8): 1 8 = i = Fm 0 = n = Fm 1 = Fm 1 1 = Fm / 43 / 43 Beispiel für (m = 8): Fibonacci-Suche 1 8 = i = Fm 0 = n = Fm 1 Fibonacci-Suche 1 8 = i = Fm 0 = n = Fm 1 = Fm 1 1 = Fm 1 1 = Fm 1 1 = Fm 1 1 Fibonacci-Suche Sei n = F m 1 für geeignetes m. setze i = F m vergleiche den zu suchenden Schlüssel k mit A(i): ist A(i) = k : Suche erfolgreich ist A(i) > k : durchsuche den linken Bereich mit F m 1 n ist A(i) < k : durchsuche den rechten Bereich mit F m 1 1 n Suche im rechten Bereich: Suche im linken Bereich: 1 5 = i = Fm 3 1 = Fm = Fm 3 1 = Fm = i = Fm 4 = Fm 1 = Fm = Fm / 43 4 / 43
2 Fibonacci-Suche Fibonacci-Suche programmtechnische Umsetzung Sei n = F m 1 für geeignetes m. wir speichern ein Paar (f 1, f ) = (F m 3, F m ) wir testen an der Stelle f Suche im rechten Intervall der Länge F m 1 1: ist f 1 = 0 : F m 3 = 0, F m = 1 F m 1 1 = F m 3 + F m 1 = 0, d.h. die Suche bricht ab. andernfalls merken wir uns (f 1, f ) = (F m 4, F m 3 ) = (f f 1, f 1 ) Suche im linken Intervall der Länge F m 1 : ist f = 1, so ist F m 1 = 0, d.h. die Suche bricht ab. andernfalls merken wir uns (f 1, f ) = (F m 5, F m 4 ) = (f 1 f 1, f f 1 ) fibonacci_search(a, m, k) // sucht nach Position mit Schlüssel k // im Bereich A[1..n] mit (n = F(m)-1), // liefert 0, falls nicht vorhanden pos = -1; f1 = F(m-3); f = F(m-); i = f; while (pos < 0) do if (k > A(i)) // Durchsuche den oberen Bereich if (f1 = 0) // nicht vorhanden then pos = 0 else i = i + f1 t = f1 f1 = f - f1 f = t end if else if (k < A(i)) // Dursuche den unteren Bereich if (f = 1) // nicht vorhanden then pos = 0 else i = i - f1 f = f - f1 f1 = f1 -f end if else pos = i // gefunden end if return pos 5 / 43 / 43 Analyse der Fibonacci-Suche Analyse der Fibonacci-Suche wir starten mit einem Intervall der Länge F m 1 das nächste Intervall hat eine Länge von höchstens F m damit benötigen wir höchstens m Schlüsselvergleiche Damit ist F m c m mit einer Konstanten c. Für n + 1 = F m c m benötigen wir maximal m Vergleiche damit folgt: C max (n) = Θ(log (n + 1)) = Θ(log n). Lemma F m = 1 h m Beweis per Induktion. Hierbei steht für kaufmännisches Runden. m i D 1 = 5 ( ) me. Es gilt auch (ohne Beweis): C avg (n) = Θ(log n). Das ist die gleiche Größenordnung wie bei der Binärsuche, aber hier haben wir keine Divisionen, nur Additionen und Subtraktionen. genauer: keine Shiftoperationen. 8 / 43 9 / 43
3 Exponentielle Suche Exponentielle Suche Wenn n sehr groß ist, kann es sinnvoll sein, zunächst einen Bereich zu bestimmen, in dem ein gegebener Schlüssel liegen muß, falls er vorhanden ist. Idee der exponentiellen Suche wir verdoppeln in jedem Schritt den Suchbereich bis wir ein Intervall gefunden haben mit A( i ) < k A(i) in diesem Intervall suchen wir binär weiter. exponential_search(a, n, k) // suche nach Position mit Schlüssel k im Bereich A[1..n] if ((k<a(1) or k>a(n))) return 0 else i = 1 while ((k>a(i)) und (i<n)) do i = i + i if (i>n) i = n return binary_search(a,i/,i,k) / 43 1 / 43 Analyse der exponentiellen Suche Interpolationssuche Annahme: alle Schlüssel sind verschieden, positiv und ganzzahlig. Schlüssel wachsen mindestens so schnell wie die Indizes der wird in der while-schleife d -mal verdoppelt, so gilt d 1 A( d 1 ) < k < A( d ) d < 1 + log k = Θ(log k ) Vergleiche. der Suchbereich enthält dann höchstens d 1 < k Schlüssel Θ(log k ) Vergleiche in binary_search im worst case. die Gesamtlaufzeit beträgt somit Θ(log k ). sinnvoll, wenn k n gilt. Sucht man im Telefonbuch den Namen Ackermann, so wird man vorne aufschlagen, bei Knuth eher in der Mitte. m Binärsuche: m = jl + 1 (r l) Unter der Annahme der gleichmäßigen Verteilung der Schlüssel ersetzen wir 1 durch die erwartete Position des Suchschlüssels Es lässt sich zeigen: Satz m = l + k A(l) (r l). A(r ) A(l) Sind die n Schlüssel unabhängig und gleichverteilt aus einem Intervall I, so beträgt die mittlere Suchzeit O(log log n). Aber: worst-case Θ(n), schlechter als binäre Suche. 13 / / 43
4 quadratische Binärsuche Versuch, unter Beibehaltung der guten mittleren Laufzeit die worst-case-laufzeit zu verbessern. quadratische Binärsuche seien wie vorher A(1) <... < A(n) zusätzlich A(0) < A(1), A(n + 1) > A(n) führe einen Schritt der Interpolationssuche aus teile das verbleibende Suchintervall in Subintervalle der Größe n auf führe lineare Suche auf diesen Subintervallen duch und bestimme das Subintervall, in dem x liegen müßte wende das Verfahren rekursiv auf dieses Subintervall an. quadratische Binärsuche setze l := 0, r := n + 1 und rufe quadratische Binärsuche(A,k,l,r) auf. quadratische Binärsuche(A,k,l,r) (1) setze aktuell := l + k A(l) (r l) A(r ) A(l) () ist k = A(aktuell), stop. (3) ist k > A(aktuell), setze l := aktuell + 1 (4) ist k < A(aktuell), setze r := aktuell 1 (5) bestimme durch lineare Suche ein i mit A(l + (i 1) n ) k A(l + i n ) (6) wende Verfahren rekursiv an auf das Intervall [l + (i 1) n, l + i n ]. n n n n n 15 / / 43 quadratische Binärsuche quadratische Binärsuche Satz Es läßt sich zeigen: Lemma Seine die Schlüssel unabhängig und gleichverteilt über (A(0), A(n + 1)). Dann ist die mittlere Anzahl C der Vergleiche pro Programmaufruf der quadratischen Binärsuche höchstens 3. das Verfahren findet im Mittel nach drei Schritten das Intervall der Größe n, in dem k liegen müßte. Daraus läßt sich die mittlere Laufzeit abschätzen: Unter der obigen Voraussetzung betragen die mittleren Kosten T avg (n) der quadratischen Binärsuche O(log log n). Beweis: Es gilt: T avg (1) 1, T avg () und T avg (n) C + T avg ( n) für n 3. Wir zeigen per Induktion T avg (n) + C log log n: T avg (n + 1) C + T avg ( p n + 1) = C + + C log log((n + 1) 1 ) = C + + C log 1 log(n + 1) = + C log log(n + 1) Im schlimmsten Fall beträgt die Suchzeit n 1 + n = O( n) Einheiten. 1 / / 43
5 quadratische Binärsuche exponentielle und binäre Suche setze l := 0, r := n + 1 und rufe quadratische Binärsuche(A,k,l,r) auf.. Versuch, unter Beibehaltung der guten mittleren Laufzeit die worst-case-laufzeit zu verbessern. exponentielle und binäre Suche seien wie vorher A(1) <... < A(n) zusätzlich A(0) < A(1), A(n + 1) > A(n) führe einen Schritt der Interpolationssuche aus zerlege das verbleibende Suchintervall in Subintervalle der Größe n, n, 4 n,... i n auf teile das verbleibende Suchintervall in Subintervalle der Größe n auf führe binäre Suche auf diesen Subintervallen duch und bestimme das Subintervall, in dem x liegen müßte wende das Verfahren rekursiv auf dieses Subintervall an. quadratische Binärsuche(A,k,l,r) (1) setze aktuell := l + k A(l) (r l) A(r ) A(l) () ist k = A(aktuell), stop. (3) ist k > A(aktuell), setze l := aktuell + 1 (4) ist k < A(aktuell), setze r := aktuell 1 (5) bestimme: S(l + i 1 n) < k S(l + i n). (6) auf dem Intervall [l + i 1 n, l + i n] bestimme j durch binäre Suche mit S(l + (j 1) n) < k S(l + j n). () Wende Verfahren rekursiv auf das Intervall [l + (j 1) n, l + j n] an 19 / 43 0 / 43 exponentielle und binäre Suche selbstorganisierende Listen Szenario: Satz Unter der obigen Voraussetzung gilt für die exponentielle und binäre Suche: die Anzahl der Vergleiche im schlechtesten Fall ist O(log n) die Anzahl der Vergleiche im Mittel ist O(log log n) ( da log i i) Datenstruktur: verkettete, unsortierte Listen wiederholte Suchanfragen unterschiedliche Häufigkeiten für die Schlüssel organisiere Liste so um, dass häufige Anfragen am Anfang der Liste 1 / 43 / 43
6 selbstorganisierende Listen Suchverfahren Stragien: Bei jeder Anfrage an einen Schlüssel: vertausche Listenelement mit Element davor, oder erhöhe einen Anfragenzähler und sortiere nach fallendem Zähler, oder setze Element an die Spitze der Liste. zur Suche haben wir bisher lediglich Vergleichsoperationen auf den Schlüsseln zugelassen wir wollen jetzt arithmetische Operationen auf den Schlüsseln erlauben, um daraus die mögliche Position des Datums zu berechnen. 3 / 43 4 / 43 Hashverfahren Anwendungen: Symboltabellen für Compiler (Schlüssel: Bezeichner (Identifiers)) Hashverfahren Bezeichner dürfen 80 Zeichen lang sein das erste Zeichen muss ein Buchstabe sein die folgenden Zeichen können auch Sonderzeichen sein zulässige Bezeichner: davon kommen in einem Programm nur k vor gesucht: Datenstruktur, die Suchen, Einfügen, Entfernen effizient unterstützt deren Größe nur von k abhängt 5 / 43 6 / 43
7 Hashverfahren Hashverfahren gegeben: Datensätze Datensätze werden über Schlüssel identifiziert zu unterstützende Operationen: Suchen, Einfügen, Entfernen bisher: lineare geordnete Listen jetzt: Suchen mittels Schlüsselvergleichen Adressen werden durch eine arithmetische Berechnung ermittelt jeder Schlüssel k wird über eine Adresse h(k ) angesprochen Idee: verallgemeinerte Felder wir verwenden ein Feld T (m) (Hashtabelle) m ist die Größe der Hashtabelle dem Schlüssel k wird eine Adresse h(k ) in T zugeordnet aber Schlüssel können auf dieselbe Adresse abgebildet werden (Kollisionen) Kollisionen: müssen behandelt werden, sollen möglichst selten auftreten, sollen möglichst effizient aufgelöst werden. / 43 8 / 43 Hashverfahren Hashverfahren Szenario Inhaltsangabe: Die Wahl der Hashfunktion Kollisionsbehandlungen die Schlüssel entstammen einer (im allgemeinen großen) Menge U (Universum) die zu speichernden Schlüssel K bilden eine Teilmenge von U üblicherweise ist K U die Größe m der Hashtabelle wird vorab festgelegt, oft ist m K ebenso die Hashfunktion h : U {0,... m 1} 9 / / 43
8 Direkte Adressierung Illustration: (m = ) Direkte Adressierung der einfachste Fall: Alle Schlüssel sind verschieden. U = {0, 1,..., m 1}. U (alle möglichen Schlüssel) Implementierung der Operationen: K (aktulle Schlüssel) verwende Feld T [0,..., m 1] (Adresstabelle) 5 5 T (k ) zeigt auf einen Datensatz mit Schlüssel k suche(t,k): gib T (k ) zurück füge_ein(t,x): T (x.key ) zeigt auf x lösche(t,x): T (x.key ) = nil alle diese Operationen benötigen im worst-case O(1) Zeit / 43 3 / 43 Hashtabellen Illustration: Hashtabellen im Allgemeinen gilt jedoch: K U Ziele: U 0 1 h(k 1 ) Θ( K ) Speicherplatz Suche im Durchschnitt in Θ(1) Zeit Methode: Benutzung einer Hashfunktion k 1 K k 3 k 4 h(k 4 ) h(k ) = h(k 5 ) h : U {0, 1,,..., m 1} k h(k 3 ) k 5 m 1 33 / / 43
9 Hashtabellen Wahl der Hashfunktion Was zeichnet eine gute Hashfunktion aus? Ziel: Die Hashadressen sollen gleichverteilt in {0, 1,..., m 1} sein. Die Verteilung der Adressen hängt ab von der Verteilung der Schlüssel. Probleme: (1) Wie soll man die Hashfunktion wählen? () Wie geht man mit Kollisionen um? Sei p(k ) die Wahrscheinlichkeit, daß Schlüssel k U vorkommt. Gleichverteilungsziel: X p(k ) = 1 für j = 0, 1,..., m 1. m k : h(k )=j Beispiel: Schlüssel sind reelle Zahlen, unabhängig gleichverteilt im Intervall [0, 1). Dann erfüllt das Gleichverteilungsziel. h(k ) = km Problem: Im Allgemeinen kennen wir p(k ) nicht. 35 / / 43 Wahl der Hashfunktion Wahl der Hashfunktion Divisionsmethode Generalannahme: Die Schlüssel sind nichtnegative ganze Zahlen. Eigenschaften h(k ) = k mod m Es ist immer möglich, Schlüssel so zu interpretieren, z.b. Charakterstrings: Jedem Zeichen entspricht im ASCII-Code eine Zahl im Bereich [0,..., 1], z.b. p ˆ= 11, t ˆ= 116 pt ˆ= = 1445 (1) h(k ) kann schnell berechnet werden. () Die richtige Wahl von m (Tabellengröße) ist sehr wichtig. Beispiele Aufteilung in männlich/weiblich Aufteilung nach Wochentagen der Geburt Aufteilung nach Geburtstagen 3 / / 43
10 Divisionsmethode Divisionsmethode zu (): Man sollte vermeiden: m = i : alle bis auf die letzten Binärziffern werden ignoriert. m = i : analog bei Dezimalzahlen. m = r i : analog bei r -adischen Zahlen. m = r i ± j für kleines j: z.b. m = 1 = 1: pt = ( ) mod 1 = 1445 mod 1 = 1 tp = ( ) mod 1 = mod 1 = 1 dasselbe passiert, wenn in einer längeren Zeichenkette zwei Buchstaben vertauscht werden allgemein gilt: sei A ein Alphabet mit den Buchstaben 0,..., p 1 sei k eine Zeichenkette über A, k eine Permutation von k dann ist: k k mod p. Übungsaufgabe: warum? 39 / / 43 Divisionsmethode Wahl der Hashfunktion Multiplikationsmethode Gute Wahl: Primzahl m, die kein r i ± j, j klein, teilt. Praktisch bewährt Beispiel: Die Hashtabelle soll ca. 00 Einträge aufnehmen, die Schlüssel sind Zeichenketten, interpretiert als -adische Zahlen. Gute Wahl: m = 01, da 9 = 51 und = 4. Sei 0 < A < 1. Setze: Eigenschaften h(k ) = m(k A mod 1) = m (k A k A ) {z } [0,1) (1) Die Wahl von m ist unkritisch. () Wir erhalten eine gleichmäßige Verteilung für U = {1,,..., n} bei einer guten Wahl von A. 41 / 43 4 / 43
11 Multiplikationsmethode zu (): Irrationale Zahlen sind eine gute Wahl, denn: Satz Sei ξ eine irrationale Zahl. Plaziert man die Punkte ξ ξ, ξ ξ,..., nξ nξ in das Intervall [0, 1], dann haben die n + 1 Intervallteile höchstens drei verschiedene Längen. Außerdem fällt der nächste Punkt in einen der größten Intervallteile. (n + 1)ξ (n + 1)ξ 43 / 43
Informatik 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
MehrInformatik I 5. Kapitel. Hashverfahren. Hashverfahren. Hashverfahren. Rainer Schrader. 3. Juni Gliederung
Informatik I 5. Kapitel Rainer Schrader Zentrum für Angewandte Informatik Köln 3. Juni 2008 1 / 86 2 / 86 Gliederung Adressberechnung durch Hashing Hashfunktionen Kollisionsbehandlung Anwendung von Hashfunktionen
Mehr12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.
Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Worst-case Zeit für Search: Θ(n). In der Praxis jedoch sehr gut. Unter gewissen
Mehr13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)
AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode
MehrDatenstrukturen und Algorithmen. 7. Suchen in linearen Feldern
Datenstrukturen und Algorithmen 7. Suchen in linearen Feldern VO 708.031 Suchen in linearen Feldern robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische
MehrDas Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben
MehrKap. 5 Hashing. 15./16. VO DAP2 SS /18. Juni 2009
Kap. 5 Hashing nach Übungstest Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 15./16. VO DAP2 SS 2009 16./18. Juni 2009 1 Linux-Kurs 2. Teil Beginn: Di 16.6.
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Algorithmen und Datenstrukturen Teil 3 Suchen in Listen Version vom: 15. November 2016
MehrKap. 5 Hashing. Linux-Kurs 2. Teil. Überblick. Motivation. 4 Idee von Hashing. Idee von Hashing. Warum soll ich heute hier bleiben? Und wenn nicht?
Kap. 5 Hashing Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, T Dortmund nach Übungstest 15./16. VO DAP2 SS 2009 16./18. Juni 2009 Linux-Kurs 2. Teil Beginn: Di 16.6.
MehrDas Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil Hash-Verfahren Version vom: 18. November 2016 1 / 28 Vorlesung 9 18. November 2016
MehrMultiplikationsmethode. Informatik I. goldener Schnitt. Der goldene Schnitt. Einführung. Rainer Schrader. 30. Mai Konstruktionsmethode
Multiplikationsethode Inforatik I Einführung Rainer Schrader Zentru für Angewandte Inforatik Köln 30. Mai 005 zu (): Irrationale Zahlen sind eine gute Wahl. Erinnerung: Φ = 1 + 5 = 1.6180339887... ˆΦ =
MehrAlgorithmen und Datenstrukturen II: Hashverfahren
Algorithmen und Datenstrukturen II: Hashverfahren Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 16:21 Inhaltsverzeichnis Hashverfahren....................................
MehrDas Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele
MehrAlgorithmen und Datenstrukturen II: Hashverfahren
Algorithmen und Datenstrukturen II: Hashverfahren Prof. Dr. Oliver Braun Letzte Änderung: 10.05.2017 16:21 Algorithmen und Datenstrukturen II: Hashverfahren 1/28 Hashverfahren bisher jeder Datensatz durch
Mehr3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen.
Das Suchproblem Gegeben Menge von Datensätzen. 3. Suchen Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle Jeder Datensatz hat einen Schlüssel k. Schlüssel sind vergleichbar: eindeutige Antwort auf
MehrP ( Mindestens zwei Personen haben am gleichen Tag Geb. ) (1) = 1 P ( Alle Personen haben an verschiedenen Tagen Geb. ) (2)
1 Hashing Einleitung Eine sehr naive Herangehensweise zur Implementierung eines Wörterbuchs ist die Benutzung eines hinreichend grossen unsortierten Arrays, in dem jeweils an eine freie Position eingefügt
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 6 (7.5.2018) Dictionaries, Binäre Suche, Hashtabellen I / Yannic Maus Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary:
MehrHashing. Überblick Aufgabe Realisierung
Überblick Aufgabe Realisierung Aufgabe Realisierung Anforderungen Wahl einer Hashfunktion mit Verkettung der Überläufer Offene Universelles 2/33 Überblick Aufgabe Realisierung Aufgabe Dynamische Verwaltung
MehrAlgorithmen & Datenstrukturen. 3. Suchen
Algorithmen & Datenstrukturen 3. Suchen 1 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
Mehr6/23/06. Universelles Hashing. Nutzen des Universellen Hashing. Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen
Universelles Hashing Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen wir können nicht annehmen, daß die Keys gleichverteilt im Universum liegen (z.b. Identifier im Programm) könnte also
MehrGrundlagen der Algorithmen und Datenstrukturen Kapitel 4
Grundlagen der Algorithmen und Datenstrukturen Kapitel 4 Christian Scheideler + Helmut Seidl SS 2009 06.05.09 Kapitel 4 1 Wörterbuch-Datenstruktur S: Menge von Elementen Jedes Element e identifiziert über
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
MehrTeil VII. Hashverfahren
Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:
MehrKapitel 10. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge
MehrAlgorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 06 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative
MehrAlgorithmen 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
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (12 Hashverfahren: Verkettung der Überläufer) Prof. Dr. Susanne Albers Möglichkeiten der Kollisionsbehandlung Kollisionsbehandlung: Die Behandlung
MehrAlgorithmen und Datenstrukturen 1-1. Seminar -
Algorithmen und Datenstrukturen 1-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Inhalt der ersten beiden Vorlesungen Algorithmenbegriff Komplexität, Asymptotik
MehrPraktische Informatik I Algorithmen und Datenstrukturen Wintersemester 2006/07
6 Hashverfahren zum Namen Hash : engl für zerhacken gestreute Speicherung 61 Grundbegriffe Wir unterstellen ein direkt adressierbares Speichermedium mit einer Menge von Adressen, dem Adressraum Die Datensätze
MehrÜbungsklausur Algorithmen I
Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer
MehrAlgorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrAlgorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier
Algorithmen und Datenstrukturen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Algorithmen und Datenstrukturen Gesamtübersicht Organisatorisches / Einführung Grundlagen: RAM,
MehrHashing Hashfunktionen Kollisionen Ausblick. Hashverfahren. Dank an: Beate Bollig, TU Dortmund! 1/42. Hashverfahren
Dank an: Beate Bollig, TU Dortmund! 1/42 Hashing Überblick Aufgabe Realisierung Aufgabe Realisierung Anforderungen Wahl einer Hashfunktion mit Verkettung der Überläufer Offene Universelles Hashing 2/42
MehrBeweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens
Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens h 1 2 j = 2 h 1 j=0 interne Knoten enthalten kann. EADS 86/600 Beweis: Induktionsanfang: 1 ein AVL-Baum der Höhe h = 1 enthält
MehrAlgorithmen und Datenstrukturen Hashverfahren
Algorithmen und Datenstrukturen Hashverfahren Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Prinzip Details Anwendungen Motivation Hashverfahren
MehrAlgorithms & Data Structures 2
Algorithms & Data Structures 2 Fast Searching WS2017 B. Anzengruber-Tanase (Institute for Pervasive Computing, JKU Linz) (Institute for Pervasive Computing, JKU Linz) SEQUENTIELLE SUCHE Suche nach Element
Mehr4. Hashverfahren. geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D. Menge A von Speicheradressen; oft: A = {0,..., m 1}
105 4. Hashverfahren geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D Menge A von Speicheradressen; oft: A = {0,..., m 1} jedes Speicherverfahren realisiert h : D A mögliche Implementierungen
MehrAlgorithms & Data Structures 2
Algorithms & Data Structures Digital Sorting WS B. Anzengruber-Tanase (Institute for Pervasive Computing, JKU Linz) (Institute for Pervasive Computing, JKU Linz) WIEDERHOLUNG :: UNTERE SCHRANKE FÜR SORTIEREN
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 Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11 Hashverfahren: Allgemeiner Rahmen) Prof. Dr. Susanne Albers Das Wörterbuch-Problem (1) Das Wörterbuch-Problem (WBP) kann wie folgt beschrieben
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
MehrEs sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:
Binäre Suchbäume (a, b)-bäume (Folie 173, Seite 56 im Skript) Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: 1 Jeder Knoten hat höchstens b Kinder. 2 Jeder
MehrKapitel 2. Weitere Beispiele Effizienter Algorithmen
Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte
MehrSchleifeninvarianten. Dezimal zu Binär
Schleifeninvarianten Mit vollstandiger Induktion lasst sich auch die Korrektheit von Algorithmen nachweisen. Will man die Werte verfolgen, die die Variablen beim Ablauf eines Algorithmus annehmen, dann
Mehr4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.
4.4 Perfektes Hashing Das Ziel des perfekten Hashings ist es, für eine Schlüsselmenge eine Hashfunktion zu finden, so dass keine Kollisionen auftreten. Die Größe der Hashtabelle soll dabei natürlich möglichst
MehrTheoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme
Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien
MehrKollision Hashfunktion Verkettung Offenes Hashing Perfektes Hashing Universelles Hashing Dynamisches Hashing. 4. Hashverfahren
4. Hashverfahren geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D Menge A von Speicheradressen; oft: A = {0,..., m 1} jedes Speicherverfahren realisiert h : D A mögliche Implementierungen von
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft
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
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
Mehr2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.
2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum
MehrHumboldt-Universität zu Berlin Berlin, den Institut für Informatik
Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Hashing Maike Buchin 2. und 4.5.2017 Motivation häufig werden Daten anhand eines numerischen Schlüssel abgespeichert Beispiele: Studenten der RUB nach Matrikelnummer Kunden einer
MehrWiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO
Wiederholung Datenstrukturen und Algorithmen VO 708.031 Suchen in linearen Feldern Ohne Vorsortierung: Sequentielle Suche Speicherung nach Zugriffswahrscheinlichkeit Selbstanordnende Felder Mit Vorsortierung:
Mehr3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr
3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:
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:
MehrThemen. Hashverfahren. Stefan Szalowski Programmierung II Hashverfahren
Themen Hashverfahren Einleitung Bisher: Suchen in logarithmischer Zeit --> Binärsuche Frage: Geht es eventuell noch schneller/effektiver? Finden von Schlüsseln in weniger als logarithmischer Zeit Wichtig
MehrExponentiation: das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element
Problemstellung Banale smethode : das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element a n = } a a a {{ a } H n (schreiben ab jetzt a n statt a n ) Hinweis:
MehrProgrammiertechnik II
Hash-Tabellen Überblick Hashfunktionen: Abbildung von Schlüsseln auf Zahlen Hashwert: Wert der Hashfunktion Hashtabelle: Symboltabelle, die mit Hashwerten indiziert ist Kollision: Paar von Schlüsseln mit
MehrSuchen und Sortieren
Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles
MehrMotivation Binäre Suchbäume
Kap..: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund Zusätzliche Lernraumbetreuung Morteza Monemizadeh: Jeden Montag von :00 Uhr-:00 Uhr in
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Große Übung #6 Phillip Keldenich, Arne Schmidt 26.02.2017 Heute: Master-Theorem Phillip Keldenich, Arne Schmidt Große Übung 2 Vorbetrachtungen Wir betrachten rekursive Gleichungen
MehrINSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS
Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales
MehrProgrammiertechnik II
Sortieren: Einfache Algorithmen Sortieren Abstrakte Operation geg: Menge von items (Elemente) jedes Element besitzt Sortierschlüssel Schlüssel unterliegen einer Ordnung eventuell sind doppelte Schlüssel
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
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
Mehr4. Sortieren 4.1 Vorbemerkungen
. Seite 1/21 4. Sortieren 4.1 Vorbemerkungen allgemeines Sortierproblem spezielle Sortierprobleme Ordne a 1,..., a n so um, dass Elemente in aufsteigender Reihenfolge stehen. Die a i stammen aus vollständig
MehrKap. 4.7 Skiplisten. 14./15. VO DAP2 SS /16. Juni 2009
Kap. 4.7 Skiplisten Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 14./15. VO DAP2 SS 2008 9./16. Juni 2009 1 2. Übungstest Termin: Di 16. Juni 2009 im AudiMax,
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
MehrU h(k 1 ) h(k 4 ) k 1 h(k 3 )
92 Kapitel 8 Hashing Hashing ist ein anderes Vorgehen, das auch ohne Baumstrukturen ein effizientes Suchen ermöglicht. Wie bei Bucketsort ist auch hier eine der grundsätzlichen Eigenschaften, dass Hashing
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
MehrNAME, VORNAME: Studiennummer: Matrikel:
TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.
MehrÜbungsklausur Algorithmen I
Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders 26.5.2010 svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe:
MehrDatenstrukturen und Algorithmen. Vorlesung 9
Datenstrukturen und Algorithmen Vorlesung 9 Inhaltsverzeichnis Vorige Woche: ADT Deque ADT Prioritätsschlange Binomial-Heap Heute betrachten wir: Aufgaben Hashtabellen Aufgabe I Rot-Schwarz Kartenspiel:
MehrA7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.2 Quicksort. A7.
Algorithmen und Datenstrukturen 14. März 2018 A7. III Algorithmen und Datenstrukturen A7. III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 A7.1 Untere Schranke A7.2 Quicksort A7.3 Heapsort
MehrKapitel 4. Streuen. (h K injektiv) k 1 k 2 K = h(k 1 ) h(k 2 )
Kapitel 4 Streuen Wir behandeln nun Ipleentationen ungeordneter Wörterbücher, in denen die Schlüssel ohne Beachtung ihrer Sortierreihenfolge gespeichert werden dürfen, verlangen aber, dass es sich bei
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,
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Sortierte Folgen Maike Buchin 30.5., 1.6., 13.6.2017 Sortierte Folgen Häufiges Szenario: in einer Menge von Objekten mit Schlüsseln (aus geordnetem Universum) sollen Elemente
MehrExponentielle Suche 4/26/10. Beweis für. Situation: Idee: suche zunächst "rechten Rand" r, so dass k < Ar Algo: Analyse:
Beweis für 9 Exponentielle Situation: n sehr groß esuchtes i, mit Ai = k, ist relativ klein Idee: suche zunächst "rechten Rand" r, so dass k < Ar Algo: 1 2 4 8 i 16 Index r = 1 while A[r] < key: r *= 2
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
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 5 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 26. März
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen A7. Sortieren III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 Untere Schranke Sortierverfahren Sortieren Vergleichsbasierte Verfahren Nicht vergleichsbasierte
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2017/18 Pro f. Dr. Sán do r Fe k e te 1 4.1 Grundoperationen Aufgabenstellung: 3 4.1 Grundoperationen Aufgabenstellung: Verwalten
MehrElementare Sortierverfahren
Algorithmen und Datenstrukturen I Elementare Sortierverfahren Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 18:16 Inhaltsverzeichnis Sortieren.......................................
Mehr2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017
2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
MehrInformatik I 2. Kapitel. Elementare Datenstrukturen. Datenstrukturen. Datenstrukturen. Rainer Schrader. 28. Mai 2008
Informatik I. Kapitel Rainer Schrader Elementare Zentrum für Angewandte Informatik Köln 8. Mai 008 / / bisher haben wir nur Arrays verwendet, Gliederung Einführung abstrakte Datentypen Listen Stacks und
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de 4. Sortierverfahren Elementare Sortierverfahren - Sortieren durch
MehrImplementierung von Mengen (und Wörterbücher): Alternative zu Suchbäumen
5.8 HashVerfahren und Anwendungen Implementierung von Mengen (und Wörterbücher): Alternative zu Suchbäumen hash: zerhacken, Hackfleisch Grundidee: Indexierung der Tabelle mit geeignet transformierten Schlüsselwerten
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
Mehr