Sobes.tech
Middle

Τι είναι η σύγκρουση κατακερματισμού και ποια μέθοδοι υπάρχουν για την επίλυσή της;

sobes.tech AI

Απάντηση από AI

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:

  1. 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ə).
  2. 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.
  3. 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