Movatterモバイル変換


[0]ホーム

URL:


Spring til indhold
WikipediaDen frie encyklopædi
Søg

Hashtabel

Fra Wikipedia, den frie encyklopædi
For alternative betydninger, seTabel (flertydig).(Se også artikler, som begynder med Tabel)

Enhashtabel er endatastruktur, hvor man hurtigt kan finde data ud fra en nøgle. Nøglen behandles med enhashfunktion, og resultatet bruges som indeks til selve opslaget.

Statisk hashtabel

[redigér |rediger kildetekst]

I en statisk hashtabel er størrelsen af tabellen givet på forhånd. En enkel hashfunktion kunne være h(nøgle) = nøgle modulo tabellængden.

I tabellen gemmes tre ting i hver række. Nøglen, de tilhørende data og oplysninger om der er andre data, med den aktuelle hashværdi.

Et simpelt eksempel: Data gemmes i en tabel med plads til 11 poster. Det antages, at nøglen er et heltal. Hashfunktionen er h(nøgle) = nøgle modulo 11.

Hvis data med nøglerne 5, 14, 23, 32 og 42 indsættes, ser det sådan ud:

Index Nøgle Kollision 0 1    23 2 3    14 4 5     5 6 7 8 9    4210    32

Hvis der som i eksemplet ingen kollision er, kan data findes direkte. Det rigtige indeks kan beregnes entydigt ud fra nøglen. Kollisioner opstår, når to eller flere nøgler giver samme hash-værdi. Hvis der i tabellen ovenfor blev tilføjet data med nøglen 3, ville der opstå en kollision. Både h(14) og h(3) giver 3.

Kollisioner

[redigér |rediger kildetekst]

Alt efter, hvordan hashtabellen er designet behandles kollisioner forskelligt. En mulighed er, at afsætte plads til de ekstra data, og så gennemsøge dette område sekventielt. Hvis der er plads til det, kan det registreres, hvilken adresse de kolliderende data befinder sig på:

Index Nøgle Kollision 0 1    23 2 3    14     11 4 5     5 6 7 8 9    4210    32--------------------11     312131415

Da der også er et adressefelt i overløbsområdet, kan flere kollisioner på samme adresse håndteres så længe, der er plads.

Tidskompleksitet
OperationRelativ tid
FindO(1)
IndsætO(1)
SletO(1)

Kilder

[redigér |rediger kildetekst]
ProgrammeringSpire
Denne artikel omdatalogi eller et datalogi-relateret emne er enspire som bør udbygges. Du er velkommen til athjælpe Wikipedia ved atudvide den.
Autoritetsdata
Hentet fra "https://da.wikipedia.org/w/index.php?title=Hashtabel&oldid=11700967"
Kategori:
Skjulte kategorier:

[8]ページ先頭

©2009-2026 Movatter.jp