logo

Vad är Hashing?

Hashing hänvisar till processen att generera en utdata med fast storlek från en indata av variabel storlek med hjälp av de matematiska formler som kallas hashfunktioner. Denna teknik bestämmer ett index eller en plats för lagring av ett objekt i en datastruktur.

Hashing datastruktur - techcodeview.com



Behov av Hash-datastruktur

Mängden data på internet växer exponentiellt varje dag, vilket gör det svårt att lagra allt effektivt. I den dagliga programmeringen kanske denna mängd data inte är så stor, men ändå måste den lagras, nås och bearbetas enkelt och effektivt. En mycket vanlig datastruktur som används för ett sådant ändamål är Array-datastrukturen.

Nu uppstår frågan om Array redan fanns där, vad var behovet av en ny datastruktur! Svaret på detta ligger i ordet effektivitet. Även om lagring i Array tar O(1) tid, att söka i det tar åtminstone O(log n) tid. Den här tiden verkar vara liten, men för en stor datamängd kan den orsaka många problem och detta gör i sin tur Array-datastrukturen ineffektiv.

Så nu letar vi efter en datastruktur som kan lagra datan och söka i den i konstant tid, d.v.s O(1) tid. Så här kom Hashing-datastrukturen in i bilden. Med introduktionen av Hash-datastrukturen är det nu möjligt att enkelt lagra data i konstant tid och även hämta dem i konstant tid.



Komponenter av hashing

Det finns huvudsakligen tre komponenter i hash:

  1. Nyckel: A Nyckel kan vara vad som helst sträng eller heltal som matas som indata i hashfunktionen tekniken som bestämmer ett index eller plats för lagring av ett objekt i en datastruktur.
  2. Hash funktion: De hash-funktion tar emot inmatningsnyckeln och returnerar indexet för ett element i en array som kallas en hashtabell. Indexet är känt som hash-index .
  3. Hashtabell: Hashtabell är en datastruktur som mappar nycklar till värden med hjälp av en speciell funktion som kallas en hashfunktion. Hash lagrar data på ett associativt sätt i en array där varje datavärde har sitt eget unika index.
Komponenter av hashing

Komponenter av hashing

Vad är kollision?

Hashingprocessen genererar ett litet tal för en stor nyckel, så det finns en möjlighet att två nycklar kan producera samma värde. Situationen där den nyinfogade nyckeln mappar till en redan besatt, och den måste hanteras med hjälp av någon kollisionshanteringsteknik.



Kollision i Hashing

Kollision i Hashing

Fördelar med hashing i datastrukturer

  • Stöd för nyckel-värde: Hashing är idealiskt för att implementera nyckel-värde datastrukturer.
  • Snabb datahämtning: Hashing möjliggör snabb åtkomst till element med konstant tidskomplexitet.
  • Effektivitet: Insättning, radering och sökning är mycket effektiva.
  • Minskad minnesanvändning: Hashing kräver mindre minne eftersom det tilldelar ett fast utrymme för att lagra element.
  • Skalbarhet: Hashing fungerar bra med stora datamängder och bibehåller konstant åtkomsttid.
  • Säkerhet och kryptering: Hashing är viktigt för säker datalagring och integritetsverifiering.

För att lära dig mer om Hashing, se Introduktion till hashing – självstudier för datastruktur och algoritmer