Mengenimplementierung Flashcards

1
Q

effiziente Suchverfahren

A

° Es sollen nicht alle Elemente mit dem zu suchenden Element verglichen werden müssem (linearer Aufwand)
° Anforderung an Elemente, sie sollen: sortierbar oder kategorisierbar sein
° Sortierbare Elemente ermöglichen eine binäre Suche oder eine Realisierung mit einem Suchbaum
° Kategorisierbare Elemente ermöglichen Hash-Verfahren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Bäume

A

° Knoten durch Kanten miteinander verbunden
° Kinder
° Knoten immer max einen Vorgängerknoten
° Knoten ohne Vorgänger heißt Wurzel des Baumes
° Knoten ohne Kinder = Blatt
° Bäum sind rekursiv

° Breiten- oder Tiefensuche

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Binäre Suchbäume

A

° Ein Knoten hat maximal zwei Kinder
° Jeder Knoten enthält ein sortierbares Element
° Im linken Unterbaum sind alle kleineren Elemente
° Im rechten Unterbaum sind alle größeren Elemente
° Merkmale:
- voller binärer Baum mit Höhe h hat 2^h Blätter
- Zahl der Knoten 2^(h+1)-1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Balancierte binäre Suchbäume

A

° für jeden Knoten gilt, dass die Höhe seiner beiden Unterbäumesich max um eins unterscheiden
° Höhe h berechnet sich dann logarithmisch aus der Anzahl n der Knoten im Baum: h = Id(n) (Id ist Logarithmus Dualis, zur Basis 2)
° Die Suche muss von der Wurzel bis zu jedem Blatt höchstens Id(n) Vergleiche vornehmen; der Aufwand ist in einer Größenordnung O(log(n))
° Baum-Implementationen des JCF (TreeSet und TreeMap) benutzen binäre, balancierte Bäume (die Elemente müssen sortierbar sein)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hash-Verfahren

A

° Grundidee, elemente auf Indexstruktur abzubilden
° Aus Elementen ist unmittelbar ein Index berechenbar
° Man hat mehrere Listen und das Wissen in welcher gesucht werden muss
- Jede Liste enthält die Elemente einer Kategorie
- Jedes Element kann Auskunft geben, zu welcher Kategorie es gehört

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hash-Tabelle

A

° Für das zu suchende Element wird zuerst der Index der Liste in der Tabelle ermittelt, in der Elemente der gleichen Kategorie liegen
° Nach dem (schnellen) indexbasierten Zugriff auf die Liste wird diese dann (linear) durchsucht
° Im Indealfall enthalten die Listen max ein Element
° Nach der Indexberechnung ist dann für eine Suche max ein Vergleich notwendig
° Sind mehr als ein Element enthalten, werden die überschüssigen Elemente als Überläufe bezeichnet
- Die Listen werden auch als Überlaufbehälter bezeichnet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Hash-Funktion

A

° bildet ein Element auf einen ganzzahligen Wert ab (int)
° Der berechnete Wert bildet eine Kategorie: Alle Elemente mit demselben Wert fallen in dieselbe Kategorie
- Wen Zwei verschiedene Elemente auf denselben Wert abbilden, wird dies als Kollision bezeichnet
- Der berechnete Wert muss in einem zweiten Schritt auf einen Index in der Hash-Tabelle abgebildet werden
° Entscheidend ist die Güte der Hash-Funktion: Je gleichmächtiger sie die Elemente in der Tabelle verteilt, desto schneller ist das Verfahren
° Eine ideale Hash-Funktion bildet alle Schlüssel eins-zu-eins auf unterschiedliche Integerwerte ab, die fortlaufend sind und bei Null beginnen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly