Middle
Hash kolliziya nədir və onun həll yolları hansılardır?
sobes.tech Süni İntellekt
AI-dan cavab
Hash çakışması, iki fərqli giriş dəyərinin eyni hash funksiyası dəyərini verdiyi zaman baş verir. Bu qaçınılmazdır, çünki mümkün girişlərin toplusu adətən mümkün hash dəyərlərinin toplamından çoxdur.
Çakışmaları həll etmək üçün metodlar:
- Açıq ünvanlama — çakışma zamanı, müəyyən bir ardıcıllıqla növbəti boş hüceyrə axtarılır (xətti, kvadrat, cüt hashləmə).
- Zəncirleme (chaining) — hər hash cədvəlində, eyni hash dəyərinə malik bütün elementlərin əlaqəli siyahısı saxlanılır.
- Yenidən hashləmə — çakışma zamanı başqa bir hash funksiyası tətbiq edilir.
Python-da zəncirleme nümunəsi:
hash_cedveli = [[] for _ in range(10)]
def elave_et(anahtar, deyer):
indeks = hash(anahtar) % 10
hash_cedveli[indeks].append((anahtar, deyer))
elave_et('alma', 1)
elave_et('mala', 2) # mümkün çakışma