Middle
Kas ir hash kolīzija un kādas ir tās risināšanas metodes?
sobes.tech AI
Atbilde no AI
Hesīsa kolīzija rodas, kad divi dažādi ievades vērtības dod to pašu hesīsa funkcijas vērtību. Tas ir neizbēgami, jo iespējamās ievades vērtību kopums parasti ir lielāks nekā iespējamās hesīsa vērtības.
Kolīziju risināšanas metodes:
- Atvērta adrešu piešķiršana — kolīzijas gadījumā tiek meklēta nākamā brīvā šūna noteiktā secībā (līnija, kvadrātiska, dubultā hesīsa).
- Saistīšana (chaining) — katrā hesīsa tabulas šūnā tiek glabāta saistīta saraksta ar visiem elementiem ar to pašu hesīsa vērtību.
- Jauna hesīsa — kolīzijas gadījumā tiek piemērota cita hesīsa funkcija.
Python piemērs ar saistīšanu:
hesīsa_tabula = [[] for _ in range(10)]
def ievietot(atslēga, vērtība):
indekss = hash(atslēga) % 10
hesīsa_tabula[indekss].append((atslēga, vērtība))
ievietot('ābols', 1)
ievietot('pma', 2) # iespējamā kolīzija