Dubbel hasning

När metoden med dubbel spridningsvärde eller dubbel hashing ( engelsk dubbel hashing ) är en metod för att förverkliga en sluten hashmetod . I slutna förfaranden hash, görs försök att rymma avhoppare i den hashtabellen stället för att lagra dem i cellen (t ex som en lista). (Öppna hashprocedurer kan tilldela poster två gånger och kräver därför ingen sondering.) Observera: Som det är i artikelns hashtabell under "Varianter av haschproceduren" används termerna "öppen" eller "sluten hashing" i exakt tvärtom.

För att göra detta använder dubbel hashing en sonderingsfunktion som inkluderar en sekundär hash-funktion, t.ex. B. , och som används om indexet som beräknats av den primära hashfunktionen redan är upptagen.

Full hash-funktionen läser sedan :, där j är antalet redan "försökta" index, dvs. Detta innebär att j ökas med 1 varje gång ett index redan används.

Sondfunktionen är tänkt att bilda en permutation av indexen för hashtabellen.

Sekvensen av hashfunktioner som nu bildas med och ser ut så här:

Kostnaden för denna metod ligger nära kostnaden för idealisk hasning.

Hashfunktionernas oberoende

Dubbel hashing använder två oberoende hashfunktioner och . Dessa kallas oberoende om sannolikheten för en så kallad dubbelkollision, dvs. H. , är mindre än eller lika med och därför minimal, var är arrayens storlek.

Exempel

Exempel på funktioner

Matrisens storlek: m

Index: {0; m-1}

Primär hashfunktion: ( metod för återstoden av divisionen )

Sekundär hashfunktion:

Utforskande funktion:

Full dubbel hash-funktion:

Beräkningsexempel

Matrisstorlek: m = 7

Hash-funktioner
Utforskande funktion

Hash-bord:

k 10 19: e 31 22: a 14: e 16
H 3 5 3 1 0 2
H ' 1 5 2 3 5 2

Matrisen fylld med hjälp av hash-tabell och sondfunktion:

0 1 2 3 4: e 5 6: e
31 22: a 16 10 - 19: e 14: e

Förklaring med exemplet :

och generera inte en kollision och behöver därför inte den dubbla hashfunktionen . Indexet för hashfunktionen kan avläsas här. skapar en kollision i matrisen vid punkten , varför du nu använder den dubbla hashfunktionen med :

Poängen skapar en kollision igen, varför följande nu kallas:

Anställningen är ledig och får därmed innehållet .

webb-länkar