Algorithms & Data Structures 2
|
|
- Franziska Bergmann
- vor 6 Jahren
- Abrufe
Transkript
1 Algorithms & Data Structures 2 Fast Searching WS2017 B. Anzengruber-Tanase (Institute for Pervasive Computing, JKU Linz) (Institute for Pervasive Computing, JKU Linz)
2 SEQUENTIELLE SUCHE Suche nach Element mit Schlüsselwert k Falls nicht bekannt, ob die Elemente der Liste nach ihren Schlüsselwerten sortiert sind, besteht nur die Möglichkeit, die Liste sequentiell zu durchlaufen und elementweise zu überprüfen (sequentielle bzw. lineare Suche) Erfolglose Suche erfordert N Schleifendurchläufe Erfolgreiche Suche verlangt im ungünstigsten Fall N - 1 Schleifendurchläufe (und N Schlüsselvergleiche) mittlere Anzahl von Schleifendurchläufen bei erfolgreicher Suche: Algorithms & Datastructures 2 // 2017W // 2
3 BINÄRE SUCHE Auf sortierten Listen können Suchvorgänge effizienter durchgeführt werden Suche nach Schlüssel k in Liste mit aufsteigend sortierten Schlüsseln: 1. Falls Liste leer ist, endet die Suche erfolglos. Sonst: Betrachte Element Inhalt[m] an mittlerer Position m. 2. Falls k = Inhalt[m].key dann ist das gesuchte Element gefunden. 3. Falls k < Inhalt[m].key, dann durchsuche die linke Teilliste von Position 1 bis m-1 nach demselben Verfahren. 4. Sonst (k > Inhalt[m].key) durchsuche die rechte Teilliste von Position m + 1 bis Listenende nach demselben Verfahren. Algorithms & Datastructures 2 // 2017W // 3
4 BINÄRE SUCHE low mid high Schränke den zu durchsuchenden Bereich Schritt für Schritt ein Divide-and-Conquer Beispiel: findelement(22) low mid high low midhigh low = mid = high Algorithms & Datastructures 2 // 2017W // 4
5 BINÄRE SUCHE Pseudocode Algorithm BinarySearch(S, k, low, high) if low > high then return NO_SUCH_KEY else mid (low+high)/2 if k = key(mid) then return key(mid) else if k < key(mid)then return BinarySearch(S, k, low, mid-1) else return BinarySearch(S, k, mid+1,high) Algorithms & Datastructures 2 // 2017W // 5
6 BINÄRE SUCHE :: LAUFZEIT Nach jedem Vergleich halbiert sich die Größe des zu durchsuchenden Bereiches: In einer Array-basierten Implementierung erfordert der Zugriff auf ein bestimmtes Element nach seiner Position O(1) daher Laufzeit der Binären Suche: C min ( N ) = 1 C max ( N ) = [ log 2 (N+1)] C avg ( N ) log 2 (N+1) - 1, für große N Vergleich Suchbereich 0 N 1 N/2 2 N/ i N/2 i log 2 N 1 Algorithms & Datastructures 2 // 2017W // 6
7 FIBONACCI SUCHE Ähnlich der Binärsuche, jedoch wird Suchbereich entsprechend der Folge der Fibonacci-Zahlen geteilt. Definition der Fibonacci-Zahlen F 0 = 0 F 1 = 1 F m = F m-1 + F m-2 für m >= 2. Teilung einer Liste mit N = F m -1 sortierten Elementen: 1 i N F m-2-1 F m-1-1 F m - 1 Algorithms & Datastructures 2 // 2017W // 7
8 FIBONACCI SUCHE Element an der Position i = F m-2 wird mit dem Schlüssel k verglichen Wird Gleichheit festgestellt, endet die Suche erfolgreich. Ist k größer, wird der rechte Bereich mit F m-1-1 Elementen, ansonsten der linke Bereich mit F m-2-1 Elementen, auf dieselbe Weise durchsucht. Kosten für N = F m -1 sind im schlechtesten Fall m-2 Suchschritte notwendig, d. h. O (m) Schlüsselvergleiche Da gilt F m c m, folgt C max ( N ) = O ( log ( N+1 ) ) = O (log 2 N) Algorithms & Datastructures 2 // 2017W // 8
9 SPRUNGSUCHE Prinzip Zunächst wird der sortierte Datenbestand in Sprüngen überquert, um den Abschnitt zu lokalisieren, der ggf. den gesuchten Schlüssel enthält, danach wird der Schlüssel im gefundenen Abschnitt nach irgendeinem Verfahren gesucht. L m 2m 3m N Algorithms & Datastructures 2 // 2017W // 9
10 EINFACHE SPRUNGSUCHE konstante Sprünge zu Positionen m, 2*m, 3*m,... Sobald k <= L[i].key mit i = j*m für (j = 1, 2,...), wird im Abschnitt L[m(j-1) +1] bis L[j*m] sequentiell nach dem Suchschlüssel k gesucht. Mittlere Suchkosten ein Sprung koste a; ein sequentieller Vergleich b Einheiten Optimale Sprungweite bzw. falls a = b Komplexität Algorithms & Datastructures 2 // 2017W // 10
11 EINFACHE SPRUNGSUCHE konstante Sprünge zu Positionen m, 2*m, 3*m,... Sobald k <= L[i].key mit i = j*m für (j = 1, 2,...), wird im Abschnitt L[m(j-1) +1] bis L[j*m] sequentiell nach dem Suchschlüssel k gesucht. Mittlere Suchkosten ein Sprung koste a; ein sequentieller Vergleich b Einheiten Optimale Sprungweite bzw. falls a = b Komplexität Algorithms & Datastructures 2 // 2017W // 11
12 ZWEI-EBENEN-SPRUNGSUCHE statt sequentieller Suche im lokalisierten Abschnitt wird wiederum eine Quadratwurzel-Sprungsuche angewendet, bevor dann sequentiell gesucht wird Mittlere Kosten: a Kosten eines Sprungs auf der ersten Ebene; b Kosten eines Sprungs auf der zweiten Ebene; c Kosten für einen sequentiellen Vergleich Für a = b = c ergibt sich: Algorithms & Datastructures 2 // 2017W // 12
13 ZWEI-EBENEN-SPRUNGSUCHE Verbesserung durch optimale Abstimmung der Sprungweiten m 1 und m 2 der beiden Ebenen Mit a = b = c ergeben sich als optimale Sprungweiten m 1 = N 2/3 und m 2 = N 1/3 mittlere Suchkosten: Verallgemeinerung zu n-ebenen-verfahren ergibt ähnlich günstige Kosten wie Binärsuche (Übereinstimmung bei log 2 n Ebenen) Sprungsuche vorteilhaft, wenn Binärsuche nicht anwendbar ist (z. B. bei blockweisem Einlesen der sortierten Sätze vom Externspeicher) Algorithms & Datastructures 2 // 2017W // 13
14 EXPONENTIELLE SUCHE Anwendung wenn Länge des sortierten Suchbereichs zunächst unbekannt bzw. sehr groß ist. Vorgehensweise für Suchschlüssel k wird zunächst obere Grenze für den zu durchsuchenden Abschnitt bestimmt i := 1; while k > L[i].key do i = 2i; Für i > 1 gilt für den auf diese Weise bestimmten Suchabschnitt L[i DIV 2].key < K <= L[i].key Suche innerhalb des Abschnitts mit irgendeinem Verfahren Algorithms & Datastructures 2 // 2017W // 14
15 EXPONENTIELLE SUCHE Sind in der sortierten Liste nur positive, ganzzahlige Schlüssel ohne Duplikate gespeichert, wachsen Schlüsselwerte mindestens so stark wie die Indizes der Elemente. i wird höchstens log 2 k mal verdoppelt Bestimmung des gesuchten Intervalls erfordert maximal log 2 k Schlüsselvergleiche Suche innerhalb des Abschnitts (z. B. mit Binärsuche) erfordert auch höchstens log 2 k Schlüsselvergleiche Gesamtaufwand O (log 2 k) Algorithms & Datastructures 2 // 2017W // 15
16 INTERPOLATIONSSUCHE Schnellere Lokalisierung des Suchbereichs indem Schlüsselwerte selbst betrachtet werden, um Abstand zum Schlüssel k abzuschätzen nächste Suchposition pos wird aus den Werten ug und og = der Unter- und Obergrenze des aktuellen Suchbereichs berechnet: Sinnvoll, wenn der Schlüsselwert im betreffenden Bereich einigermaßen gleichverteilt ist erfordert dann im Mittel lediglich log 2 (log 2 (N+1)) Schlüsselvergleiche Im schlechtesten Fall (stark ungleichmäßige Werteverteilung) entsteht jedoch linearer Suchaufwand => O (N) Algorithms & Datastructures 2 // 2017W // 16
17 DICTIONARY ADT Dictionary ist abstraktes Modell einer Datenbank Dictionary speichert Schlüssel-Element-Paare Wichtigste Operation: Suchen nach Schlüssel /** A container storing (key, value) pairs. Keys and values must not be * null, but it is allowed to store multiple pairs with equal keys. */ public interface Dictionary<K, V> { int size(); boolean isempty(); /** Find item with specified key. value of item, null if not found */ V get(k key); /** Find all items with specififed key. values of items, null if not found */ V[] getall(k key); /** Insert specified (key, value) pair. Both key and value must not * be null or an IllegalArgumentException will be thrown. */ void insert(k key, V value); /** Remove item with specified key and return its value. */ V remove(k key); /** Remove all items with specified key and return their values. */ V[] removeall(k key); } Algorithms & Datastructures 2 // 2017W // 17
18 DICTIONARY IMPLEMENTIERUNG ALS SEQUENZ ungeordnete Sequenz Suchen, Löschen O(N) Einfügen O(1) array-basierte geordnete Sequenz Suchen O(log N) mit Binärer Suche Einfügen, Löschen O(N) Anwendung: Look-Up-Tables (häufiges Suchen, Einfügen und Löschen dagegen selten) => Implementierung als (binäre) Suchbäume: siehe Kapitel Trees Algorithms & Datastructures 2 // 2017W // 18
19 SKIP-LISTEN Grundprinzip: Elemente sind nach einer Zufallsauswahl angeordnet, für die gilt, dass Suchen und Einfügen eine mittlere Laufzeit von O(log N) hat Skipliste ist eine Folge von Sequenzen {S 0, S 1, S 2,..., S h } jede Sequenz Si speichert eine Teilmenge der Einträge eines Dictionaries D in nicht-absteigender Reihenfolge zusätzliche Pseudoeinträge mit Schlüsseln - (kleiner als jeder andere Schlüssel in D) und + (größer als jeder andere Schlüssel in D) S 0 enthält alle Einträge aus D und die 2 Pseudoeinträge S h enthält nur die 2 Pseudoeinträge für i=1..h-1: Si enthält zufällig generierte Teilmenge der Einträge von S i-1 und die 2 Pseudoeinträge Auswahlprinzip: jedes Element aus S i-1 kommt mit Wahrscheinlichkeit 1/2 in S i, S i enthält daher im Mittel N/2 i Einträge h wird oft als Höhe der Skipliste bezeichnet, im Mittel h = log N Algorithms & Datastructures 2 // 2017W // 19
20 BEISPIEL :: SKIP-LISTEN Höhe h = 5 S S S S S S Algorithms & Datastructures 2 // 2017W // 20
21 POSITIONEN IM ADT SKIP-LISTE Einträge sind in Levels (horizontal) und Säulen (vertikal) angeordnet Jeder Level entspricht einer Sequenz In einer Säule befindet sich jeweils der entsprechende identische Eintrag jeder Sequenz (Säulen haben unterschiedliche Höhe!) Positionen: after(p): gibt Eintrag rechts von p auf selbem Level zurück before(p): gibt Eintrag links von p auf selbem Level zurück below(p): gibt Eintrag unterhalb von p in selber Säule zurück above(p): gibt Eintrag oberhalb von p in selber Säule zurück Wenn angesprochene Position nicht mit einem Eintrag besetzt ist, wird Position null zurückgegeben Implementierung: doppelt verkettete Listen werden entlang der Säulen nochmals doppelt verkettet Zugriff auf Nachbarpositionen für gegeben Position p erfolgt dann mit O(1) Algorithms & Datastructures 2 // 2017W // 21
22 SUCHEN IN SKIP-LISTEN Grundprinzip: Starte Suche auf oberster Ebene der Skipliste Finde Eintrag mit größtem Schlüssel kleiner oder gleich dem gesuchten Schlüssel key Pseudocode: Algorithm SkipSearch(key) Input: zu suchender Schlüssel key Output: Position p in S für die gilt, dass Schlüssel an Position p größter Schlüssel kleiner oder gleich key ist Sei p die topmost-left Position in S while below(p) null do p below(p) {gehe nach unten} while key(after(p)) key do p after(p) {scan forward} return p Algorithms & Datastructures 2 // 2017W // 22
23 BEISPIEL :: SKIP-LISTEN S 5 S 4 S 3 S 2 S 1 S 0 - find(50) below(p) null > below(p) null > below(p) null > below(p) null > below(p) null > Algorithms & Datastructures 2 // 2017W // 23 below(p) = null gefunden! + +
24 EINFÜGEN IN SKIP-LISTEN Grundprinzip: Eintrag wird auf unterster Ebene eingefügt Nach Zufallsprinzip wird entschieden, wie viele der oberen Ebenen Referenz auf Eintrag enthalten Pseudocode: Algorithm SkipInsert(key,val) Input: Eintrag (key,val) Output: keiner nach p auf selber Ebene p SkipSearch(key) q insertafterabove(p,null,(key,val)) while random() < 1/2 do while above(p) == null do p before(p) p above(p) q insertafterabove(p,q,(key,val)) {auf unterster Ebene} {scan backward} {eine Ebene nach oben} {Eintrag einfügen} verbinde nach unten Algorithms & Datastructures 2 // 2017W // 24
25 BEISPIEL :: EINFÜGEN IN SKIP-LISTEN SkipSearch(31) Beispiel: Füge 31 ein S 5 - insertafterabove(p,null,(31,val)) + S S S S S 0 Algorithms & Datastructures 2 // 2017W // p
26 BEISPIEL :: EINFÜGEN IN SKIP-LISTEN SkipSearch(31) S 5 S 4 S 3 insertafterabove(p,null,(31,val)) - + sei random() < 1/2 above(p) <> null, daher p above(p) insertafterabove(p,q,(31,val)) sei random() >= 1/2 fertig! S S S 0 Algorithms & Datastructures 2 // 2017W // p q
27 LÖSCHEN IN SKIP-LISTEN Grundprinzip Suche zu löschendes Element mit Schlüssel key falls key nicht existiert, gib NO_SUCH_KEY zurück falls key gefunden wurde, lösche Eintrag an dieser Position und alle darüber liegenden Einträge Algorithm SkipRemove(key) Input: Eintrag (key) Output: keiner p SkipSearch(key) if(p.key!= key) return(null); while p!= null do p.left.right = p.right p.right.left = p.left p above(p) {auf unterster Ebene} {not found} {eine Ebene nach oben} Algorithms & Datastructures 2 // 2017W // 27
28 BEISPIEL :: LÖSCHEN IN SKIP-LISTEN Beispiel: Lösche 25 S 5 - SkipSearch(25) removeallabove(p) + S S S S S 0 Algorithms & Datastructures 2 // 2017W // p
29 BEISPIEL :: LÖSCHEN IN SKIP-LISTEN Beispiel: Lösche 25 S S S S S S Algorithms & Datastructures 2 // 2017W // 29
30 Algorithms & Data Structures 2 Fast Searching WS2017 B. Anzengruber-Tanase (Institute for Pervasive Computing, JKU Linz) (Institute for Pervasive Computing, JKU Linz)
2. Einfache Suchverfahren. Beispiel-Spezifikation in Java. Lineare Listen (2) Lineare Listen Sequentielle Suche Binäre Suche
Lineare Listen Sequentielle Suche Binäre Suche. Einfache Suchverfahren Weitere Suchverfahren auf sortierten Feldern - Fibonacci-Suche - Sprungsuche - Exponentielle Suche - Interpolationssuche Auswahlproblem
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
Mehr2. Einfache Suchverfahren
Lineare Listen Sequentielle Suche Binäre Suche. Einfache Suchverfahren Weitere Suchverfahren auf sortierten Feldern - Fibonacci-Suche - Sprungsuche - Exponentielle Suche - Interpolationssuche Auswahlproblem
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
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
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:
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:
MehrADS: Algorithmen und Datenstrukturen
.. ADS: Algorithmen und Datenstrukturen Zweite Vorlesung Uwe Quasthoff Abteilung Automatische Sprachverarbeitung Institut für Informatik Universität Leipzig 19. Oktober 2011 Einfache Suchverfahren Lineare
MehrBäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda
Bäume O1 O2 Text O3 O4 O5 O6 O7 Prof. Dr. Margarita Esponda SS 2012 22. ALP2-Vorlesung, M. Esponda Inhalt 1. Einführung 2. Warum Bäume? 3. Listen und Arrays vs. Bäume 4. Einfach verkettete binäre Suchbäume
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
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum
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
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
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:
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
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)
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
MehrKapitel 9 Suchalgorithmen
Kapitel 9 Suchalgorithmen Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für Suchverfahren: u.a. Suchen in
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
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
MehrWiederholung 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
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
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,...
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
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
MehrGeordnete Binärbäume
Geordnete Binärbäume Prof. Dr. Martin Wirsing in Zusammenarbeit mit Gilbert Beyer und Christian Kroiß http://www.pst.ifi.lmu.de/lehre/wise-09-10/infoeinf/ WS 09/10 Einführung in die Informatik: Programmierung
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
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
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
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)
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
Mehr1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...
Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.
MehrVorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011
Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei
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
MehrSuchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable
Suchen lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable Welche Nummer hat Herr Meier? Enthält Einträge (Elemente) der Form : Name, Vorname
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.
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:
MehrJAVA - Suchen - Sortieren
Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik
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:
MehrRandomisierte Algorithmen 2. Erste Beispiele
Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest
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
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
MehrSortierte Folgen 250
Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:
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
MehrGegeben Zieladresse, finde Nachbarknoten, an den Paket zu senden ist ("Routing-Tabelle")
8 Digitalbäume, Tries,, Suffixbäume 8.0 Anwendungen Internet-outer egeben Zieladresse, finde Nachbarknoten, an den Paket zu senden ist ("outing-tabelle") 3 network addr Host id 00 0000 000 0 00 0 0000
MehrTeil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume. B-Bäume Digitale Suchbäume Heaps
Teil 1: Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume AVL-Bäume Splay-Bäume B-Bäume Digitale Suchbäume Heaps M.O.Franz; Oktober 2007 Algorithmen und
MehrPräfx Trie zur Stringverarbeitung. Cheng Ying Sabine Laubichler Vasker Pokhrel
Präfx Trie zur Stringverarbeitung Cheng Ying Sabine Laubichler Vasker Pokhrel Übersicht: Einführung Eigenschaften von Tries Verwendung von Tries Allgemeine Defnition von Patricia Tries Eigenschaften von
MehrWie beim letzten Mal - bitte besucht: http://pingo.upb.de/549170 Ihr seid gleich wieder gefragt... Übung Algorithmen I 4.5.16 Lukas Barth lukas.barth@kit.edu (Mit Folien von Julian Arz, Timo Bingmann,
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
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),
MehrKapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle
Kapitel 9 Algorithm. Geometrie Kürzeste Abstände Konvexe Hülle Überblick Teilgebiet der Informatik, in dem es um die Entwicklung effizienter Algorithmen und die Bestimmung der algorithmischen Komplexität
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
MehrDatenstrukturen. (Beispiele in MODULA-2)
Prof. Dr. Theo Härder Universität Kaiserslautern Fachbereich Informatik E-Mail: haerder@informatik.uni-kl.de WWW: http://www.haerder.de Datenstrukturen (Beispiele in MODULA-) Für dieses Manuskript behalte
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
MehrWas bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone
Was bisher geschah Motivation, Beispiele geometrische Objekte im R 2 : Punkt, Gerade, Halbebene, Strecke, Polygon, ebene Zerlegung in Regionen (planare Graphen) maschinelle Repräsentation geometrischer
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
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
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
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
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
MehrJAVA KURS COLLECTION
JAVA KURS COLLECTION COLLECTIONS Christa Schneider 2 COLLECTION Enthält als Basis-Interface grundlegende Methoden zur Arbeit mit Collections Methode int size() boolean isempty() boolean contains (Object)
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)
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
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
MehrEinführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst.
Einführung Elementare Datenstrukturen (Folie 38, Seite 23 im Skript) Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst. Einführung Elementare Datenstrukturen
MehrLösungsvorschläge. zu den Aufgaben im Kapitel 4
Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere
MehrInf 12 Aufgaben 14.02.2008
Inf 12 Aufgaben 14.02.2008 Übung 1 (6 Punkte) Ermitteln Sie eine mathematische Formel, die die Abhängigkeit der Suchzeit von der Anzahl der Zahlen N angibt und berechnen Sie mit Ihrer Formel die durchschnittliche
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
MehrLaufzeit und Komplexität
Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen
MehrAdvanced Programming in C
Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer
MehrHöhe eines B + -Baums
Höhe eines B + -Baums Anzahl der Blätter bei minimaler Belegung Anzahl von (eindeutigen) Elementen bei minimaler Belegung Anzahl der Blätter bei maximaler Belegung Anzahl von Elementen bei maximaler Belegung
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
MehrProgrammieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 5 Asymptotische Laufzeitkomplexität Definition Regeln Beispiele Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger
MehrSuchen und Sortieren
(Folie 69, Seite 36 im Skript) 5 6 1 4 Als assoziatives Array geeignet Schlüssel aus geordneter Menge Linke Kinder kleiner, rechte Kinder größer als Elternknoten Externe und interne Knoten Externe Knoten
MehrTeil 6: Algorithmen und Datenstrukturen 6.3 Suchalgorithmen Prof. Dr. Max Mühlhäuser FG Telekooperation TU-Darmstadt
Grundzüge der Informatik 1 Teil 6: Algorithmen und Datenstrukturen 6.3 Suchalgorithmen Prof. Dr. Max Mühlhäuser FG Telekooperation TU-Darmstadt Agenda Grundlegendes zu Suchalgorithmen Kennenlernen der
MehrHashing. Algorithmen und Datenstrukturen II 1
Hashing Algorithmen und Datenstrukturen II 1 Einführendes Beispiel Ein Pizza-Lieferservice in Bielefeld speichert die Daten seiner Kunden: Name, Vorname, Adresse und Telefonnummer Wenn ein Kunde seine
MehrIn diesem Kapitel behandeln wir erste Algorithmen mit dynamischen Strukturen, wie Bäume und Graphen. 1. Bäume Grundlagen...
Bäume und Graphen In diesem Kapitel behandeln wir erste Algorithmen mit dynamischen Strukturen, wie Bäume und Graphen. Inhalt 1. Bäume... 1.1. Grundlagen... 1.. Repräsentation von Binärbäumen... 9 1..1.
MehrAbschnitt 18: Effizientes Suchen in Mengen
Abschnitt 18: Effizientes Suchen in Mengen 18. Effizientes Suchen in Mengen 18.1 Vollständig ausgeglichene binäre Suchbäume 18.2 AVL-Bäume 18.3 Operationen auf AVL-Bäumen 18.4 Zusammenfassung 18 Effizientes
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
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
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).
MehrAssoziative Container in C++ Christian Poulter
Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...
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
MehrJava. Wir verwenden oft Java für Datenstrukturen und Algorithmen. Die Vorlesung ist aber von der Programmiersprache unabhängig.
Komplexität von Algorithmen (Folie 34, Seite 18 im Skript) Wir verwenden oft für Datenstrukturen und Algorithmen. Die Vorlesung ist aber von der Programmiersprache unabhängig. Lernziel sind die einzelnen
MehrBinäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps
Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer
MehrDatenstrukturen. (Beispiele in MODULA-2)
Prof. Dr. Theo Härder Universität Kaiserslautern Fachbereich Informatik E-Mail: haerder@informatik.uni-kl.de WWW: http://www.haerder.de Datenstrukturen (Beispiele in MODULA-2) Für dieses Manuskript behalte
MehrGeometrische Algorithmen
Geometrische Algorithmen Thomas Röfer Motivation Scan-line-Prinzip Konvexe Hülle Distanzprobleme Voronoi-Diagramm Rückblick Manipulation von Mengen Vorrangwarteschlange Heap HeapSort swap(a, 0, 4) 1 5
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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
MehrKapitel 6 Elementare Sortieralgorithmen
Kapitel 6 Elementare Sortieralgorithmen Ziel: Kennenlernen elementarer Sortierverfahren und deren Effizienz Zur Erinnerung: Das Sortier-Problem Gegeben: Folge A von n Elementen a 1, a 2,..., a n ; Eine
MehrKapitel 9 Suchalgorithmen
Kapitel 9 Suchalgorithmen Technische Universität München Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für
MehrTeil II: Prioritätslisten (Priority Queues)
Teil II: Prioritätslisten (Priority Queues)! Definition und Anwendungen! Binäre Heaps! Index-Heaps mit change- und remove-operation! Binomiale Heaps mit merge-operation Prof. Dr. O. Bittel, HTWG Konstanz
MehrMySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.
MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt
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
MehrCustomization (Zuschneiden)
Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. I Ziel: schnell, kompakt. I benutze Entwurfsprinzip: make the common case fast I Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum
MehrÜberblick. Lineares Suchen
Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind
MehrSortierverfahren. Sortierverfahren für eindimensionale Arrays
Sortierverfahren Sortierverfahren Sortieren durch Einfügen Sortieren durch Auswählen Sortieren durch Vertauschen (Bubblesort) Quicksort Sortierverfahren für eindimensionale Arrays 1 Gegeben ist eine beliebige
Mehr- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:
6 Partiell geordnete binäre Bäume: Heap (Haufen) Motivation für manchen Anwendungen nur partielle Ordnung der Elemente statt vollständiger nötig, z.b. - Prioritätsschlange: nur das minimale (oder maximale)
Mehr