Portfolio
CS Základy: HashMaps

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