CodeBlanks Logo Icon CodeBlanks

Çakışma

İki anahtarın aynı indekse düşmesi durumunu ve zincirleme çözümü öğrenirsin.

Hash table'da arama

Hash table'da arama: anahtarı hash'le, indeksteki listede anahtarı ara. Bulunursa değeri döndür, yoksa None.

Arama ortalama O(1)'dir çünkü çakışma azsa liste kısadır. En kötü durum (hepsi aynı indekste) O(n)'dir.

Yük faktörü

Yük faktörü = eleman sayısı / tablo boyutu. Yük faktörü yüksekse çakışma artar ve performans düşer.

Yük faktörü 0.7'yi aşarsa tablo yeniden boyutlandırılır (rehash). Bu, O(1) ortalama erişimi korur.

Uygulama Hash table'da bul

ht_get(table, key, size) yaz. hash_func ile indeks bul, listede anahtarı ara. print(ht_get([[(5,'a')],[],[]], 5, 3)) ile a yazdır.

Başlangıç kodu

solution.py
def ht_get(table, key, size):
    # Değeri bul

Örnek çözüm

solution.py
def ht_get(table, key, size):
    # Değeri bul
    idx = hash_func(key, size)
    for pair in table[idx]:
        if pair[0] == key:
            return pair[1]
    return None
print(ht_get([[(5, 'a')], [], []], 5, 3))

Beklenen çıktı

a

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Çakışma: kavramları eşleştir

Kavram Anlamı
arama O(1) ortalama
çakışma Listede ara
yük faktörü Doluluk
rehash Yeniden boyut

2 Yük faktörü neyi ölçer?

  • Doluluk oranını Doğru cevap
  • Tablo boyutunu
  • Hash kalıtesini
  • Arama hızını

Açıklama: Doluluk oranını ölçer.

3 Rehash

Soru
Yük faktörü yüksekse ____ yapılır.
Cevap
Yük faktörü yüksekse rehash yapılır.

Açıklama: rehash doğru.

Başlangıç bölümündeki tüm dersler