CS Základy: HashMaps
Únor 2026
Po Linked Listech přišla na řadu HashMap. Cílem bylo implementovat mapu klíč-hodnota od nuly a pochopit, proč má v průměru velmi rychlý přístup k datům.
Cílová složitost pro základní operace byla v průměru $O(1)$.
Co bylo důležité
Klíčová část byla hashovací funkce: převod řetězce na index v poli bucketů.
hash(key) {
let hashCode = 0;
const primeNumber = 31;
for (let i = 0; i < key.length; i++) {
hashCode = (primeNumber * hashCode + key.charCodeAt(i)) % this.buckets.length;
}
return hashCode;
}
Kromě hashování bylo důležité i ošetření kolizí a práce s velikostí tabulky, aby výkon zůstal stabilní.
Co jsem si odnesl
- Praktické pochopení, jak funguje mapování klíče na index.
- Lepší představu o tom, proč kvalita hash funkce ovlivňuje výkon.
- Jistotu v implementaci datové struktury bez vestavěných tříd.
GitHub: projekt Hash map