Sobes.tech
Junior

Cos'è una tabella hash?

sobes.tech AI

Risposta dell'AI

Una tabella hash è una struttura dati che implementa un array associativo (dizionario). Essa memorizza coppie "chiave-valore", dove le chiavi sono uniche.

Principi di base:

  • Funzione hash: Trasforma la chiave in un numero (codice hash o indice). Questo indice indica il luogo di memorizzazione del valore nell'array (cestino).
  • Array (cestini): Memorizzazione reale delle coppie "chiave-valore".
  • Collisioni: Situazione in cui chiavi diverse generano lo stesso codice hash.

Soluzione alle collisioni:

  • Metodo di chaining (separate chaining): In ogni cestino si memorizza una lista (o altra struttura dati) di elementi con lo stesso codice hash.
  • Indirizzamento aperto (open addressing): In caso di collisione, si cerca un cestino libero utilizzando diverse strategie (sondaggio lineare, sondaggio quadratico, doppio hashing).

Caratteristiche:

  • Accesso rapido: Nel caso ideale O(1) per operazioni di inserimento, ricerca e cancellazione.
  • Dipendenza dalla funzione hash: La qualità della funzione hash e la strategia di risoluzione delle collisioni influenzano molto le prestazioni.
  • Utilizzo della memoria: Richiede memoria aggiuntiva per l'array dei cestini.

Utilizzo in QA:

  • Memorizzazione di dati di test (chiave - nome del parametro, valore - valore atteso o reale).
  • Verifica dell'unicità degli elementi (ad esempio, ID utenti).
  • Implementazione di cache.