Datastructuren en algoritmen
Welke beschrijving van een botsing (collision) in een hashtabel is juist?
- AUit een hashwaarde kan de oorspronkelijke sleutel worden afgeleid
- BVerschillende sleutels leveren dezelfde hashwaarde (opslagpositie) op
- CDezelfde sleutel levert bij elke uitvoering een andere hashwaarde op
Antwoord en toelichting tonen
Antwoord: B. Verschillende sleutels leveren dezelfde hashwaarde (opslagpositie) op
Een hashtabel is een datastructuur die met een hashfunctie uit de sleutel een opslagpositie berekent, waardoor zoeken, invoegen en verwijderen gemiddeld O(1) kosten. Er zijn veel meer mogelijke sleutels dan posities in de tabel, dus dat verschillende sleutels op dezelfde positie uitkomen (een botsing), is onvermijdelijk. Botsingen worden daarom afgehandeld met methoden zoals chaining, die de elementen op dezelfde positie tot een lijst koppelt, of open adressering, die een andere vrije positie zoekt. Dezelfde sleutel moet altijd dezelfde hashwaarde opleveren, anders kan er niet worden gezocht. Of de sleutel uit de hashwaarde kan worden afgeleid, is een eigenschap die bij cryptografisch gebruik telt en heeft niets met botsingen te maken.