logo

Què és Hashing?

Hashing fa referència al procés de generació d'una sortida de mida fixa a partir d'una entrada de mida variable utilitzant les fórmules matemàtiques conegudes com a funcions hash. Aquesta tècnica determina un índex o ubicació per a l'emmagatzematge d'un element en una estructura de dades.

Estructura de dades hashing - techcodeview.com



Necessitat d'estructura de dades Hash

La quantitat de dades a Internet creix de manera exponencial cada dia, cosa que dificulta emmagatzemar-les totes de manera eficaç. En la programació del dia a dia, aquesta quantitat de dades potser no és tan gran, però tot i així, cal emmagatzemar-les, accedir-hi i processar-les de manera fàcil i eficient. Una estructura de dades molt comuna que s'utilitza per a aquest propòsit és l'estructura de dades Array.

Ara sorgeix la pregunta de si Array ja hi era, quina era la necessitat d'una nova estructura de dades! La resposta a això està en la paraula eficiència. Tot i que l'emmagatzematge a Array pren O(1) temps, cercar-hi triga almenys O(log n) temps. Aquest temps sembla ser petit, però per a un conjunt de dades gran, pot causar molts problemes i això, al seu torn, fa que l'estructura de dades de la matriu sigui ineficient.

Així que ara estem buscant una estructura de dades que pugui emmagatzemar les dades i cercar-hi en temps constant, és a dir, en O(1) temps. Així és com va entrar en joc l'estructura de dades Hashing. Amb la introducció de l'estructura de dades Hash, ara és possible emmagatzemar fàcilment dades en temps constant i també recuperar-les en temps constant.



Components del hashing

Hi ha principalment tres components del hash:

  1. Clau: A clau pot ser qualsevol cadena o nombre enter que s'alimenta com a entrada a la funció hash, la tècnica que determina un índex o una ubicació per a l'emmagatzematge d'un element en una estructura de dades.
  2. Funció hash: El funció hash rep la clau d'entrada i retorna l'índex d'un element d'una matriu anomenada taula hash. L'índex es coneix com a índex hash .
  3. Taula hash: La taula hash és una estructura de dades que mapeja claus amb valors mitjançant una funció especial anomenada funció hash. Hash emmagatzema les dades de manera associativa en una matriu on cada valor de dades té el seu propi índex únic.
Components del hashing

Components del hashing

Què és la col·lisió?

El procés hash genera un nombre petit per a una clau gran, de manera que hi ha la possibilitat que dues claus puguin produir el mateix valor. La situació en què la clau que s'ha inserit recentment s'assigna a una que ja està ocupada i s'ha de gestionar mitjançant una tecnologia de gestió de col·lisions.



Col·lisió en Hashing

Col·lisió en Hashing

Avantatges del hashing en estructures de dades

  • Suport clau-valor: El hashing és ideal per implementar estructures de dades clau-valor.
  • Recuperació ràpida de dades: El hashing permet un accés ràpid a elements amb una complexitat constant.
  • Eficiència: Les operacions d'inserció, supressió i cerca són molt eficients.
  • Reducció de l'ús de memòria: L'hashing requereix menys memòria, ja que assigna un espai fix per emmagatzemar elements.
  • Escalabilitat: L'hashing funciona bé amb grans conjunts de dades, mantenint un temps d'accés constant.
  • Seguretat i xifratge: El hashing és essencial per a l'emmagatzematge segur de dades i la verificació de la integritat.

Per obtenir més informació sobre Hashing, consulteu el Introducció al hashing - Tutorials d'estructura de dades i algorisme