Hashing Flashcards

1
Q

Hashing:

A

Idee: Statt in einer Menge von Datensätzen durch
Schlusselvergleiche zu suchen, ermittle die Position eines Elements im Speicher (bzw. einem Array) durch eine arithmetische Berechnung.

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

Hashing belegungsfaktor

A

Fur eine Hashtabelle der Größe m, die aktuell n Schlussel speichert, ist α =n/m der Belegungsfaktor der Tabelle

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

Hashfunktion:

A

Wir wählen eine Hashfunktion h : K → {0, . . . , m − 1}, die

jedem Schlussel k ∈ K einen eindeutigen – aber i.A. nicht umgekehrt eindeutigen – Hashwert zuordnet.

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

Hashing Laufzeit:

A

Vorteil: Laufzeit fur die Operationen Suchen, Einfügen und Entfernen liegt im Idealfall in Θ(1), wenn wir annehmen, dass h(s) in konstanter Zeit berechnet werden kann.

Einschränkung:
*Gilt h(k) = h(k’) fur k != k’ , d.h., zwei verschiedene Schlussel
haben den gleichen Hashwert, so wird dies Kollision genannt.

*Θ(1) gilt nur unter der Annahme, dass die Anzahl der
Kollisionen vernachlässigbar klein ist.
- Im Erwartungsfall (bei entsprechender Konfiguration)
erreichbar.
Im Worst-Case liegt der Aufwand in O(n).

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

Was charakterisiert eine gute Hashfunktion?

A

Vor allem:
* Verwendete Schlussel sollen möglichst gleichmäßig auf alle
Plätze 0, . . . , m − 1 der Hashtabelle aufgeteilt werden.

  • Auch kleinste Änderungen im Schlüssel sollen zu einem
    anderen, möglichst unabhängigen Hashwert fuhren.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Divisions-Rest-Methode

A

Annahme: k ∈ N

Berechnung:
h(k) = k mod m

Eigenschaften:
* Die Hashfunktion kann sehr schnell berechnet werden.
* Die richtige Wahl von m ist hier sehr wichtig. Eine gute Wahl
fur m ist eine Primzahl.

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

Hashtabelle einfügen Laufzeit

A

0(1)

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

Hashtabelle suchen Laufzeit

A

0(n/m) average , 0(n) worst

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

Lineares Sondieren: Probleme

A
  • Nach dem Einfugen ist die Wahrscheinlichkeit für einen neu
    einzufugenden Schlüssel in der Hashtabelle an einer gewissen
    Position gespeichert zu werden fur die verschiedenen Positionen unterschiedlich.
  • Wird ein Platz belegt, dann verändert sich die
    Wahrscheinlichkeit fur das Einfügen an seinem nachfolgenden
    Platz.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Double Hashing

A
  • Im Allgemeinen ist Double Hashing effizienter als
    quadratisches Hashing.
    I
    *In der Praxis entsprechen die Ergebnisse von Double Hashing
    nahezu denen von uniformen Hashing.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly