Junior — Middle
Welke methoden bestaan er om de kans op botsingen te verminderen bij het gebruik van hashtabellen?
sobes.tech AI
Antwoord van AI
Om de kans op botsingen in hashtabellen te verminderen, worden de volgende methoden gebruikt:
- Kies een goede hashfunctie — de functie moet de sleutels gelijkmatig over de tabel verdelen.
- Gebruik van methoden voor het oplossen van botsingen:
- Open adressering (lineair zoeken, kwadratisch zoeken, dubbele hashing) — zoeken naar de volgende vrije cel.
- Chaining — opslaan van alle elementen met dezelfde hash in een gekoppelde lijst of een andere container.
- Vergroten van de tabelgrootte — bij een bepaald laadniveau wordt een herhashing uitgevoerd met een grotere grootte.
Voorbeeld van chaining in C++:
std::unordered_map<int, std::string> map;
map[1] = "one";
map[2] = "two";
// Intern wordt chaining gebruikt voor botsingen