Bölüm 12 · SimülasyonHash Tablosu Simülatörü? ← Bölüm 12AnahtarDeğerEkle / Güncelle Ara Sil Rastgele EkleKapasite481216Otomatik büyütmeAçık (λ > 0,75)KapalıÖrneği Yükle Temizle İptalHash hesabıhash(anahtar) = FNV tarzı kayan hash mod kapasiteİşlem adımlarıHenüz işlem yok.GeçmişHenüz işlem yok. KapatHash Tablosu SimülatörüAyrı zincirleme kullanan hash tablosu: anahtar hash'lenerek bir kova indisine dönüştürülür ve her kova oraya düşen girdilerin zincirini (listesini) tutar.KullanımBir Anahtar ve Değer yazın. Ekle / Güncelle girdiyi ekler ya da var olan anahtarın değerini değiştirir; Ara ve Sil yalnızca anahtarı kullanır; Rastgele Ekle rastgele bir girdi ekler. En fazla 12 girdi sığar.Kapasite, Temizle sonrasındaki başlangıç kova sayısını belirler. Otomatik büyütme, yük faktörü 0,75'i aştığında kapasiteyi iki katına çıkarır.Örneği Yükle örnek tabloyu geri getirir; İptal çalışan işlemi durdurur ve tabloyu geri yükler.Hash fonksiyonuFNV-1a tarzı kayan hash: 2166136261'den başlanır; her karakterin kodu XOR'lanır ve sonuç 16777619 ile çarpılır (32 bit). Kova indisi hash mod kapasite olur.Notlarİki anahtar aynı kovaya düştüğünde çakışma olur; yeni girdi, anahtarı zincirde bulunmadığı anlaşıldıktan sonra zincirin sonuna eklenir.Yük faktörü λ = öğe sayısı / kapasite, ortalama zincir uzunluğudur.Büyütme her girdiyi yeniden hash'ler (rehashing), çünkü indis kapasiteye bağlıdır.KarmaşıklıkEkleme, arama ve silme ortalama O(1 + λ) sürer; tüm anahtarlar tek kovaya düşerse O(n)'ye kötüleşir. Büyütme O(n) tutar ama seyrek olur; bu yüzden ekleme amortize O(1) kalır.