9 Şubat 2020 Pazar

Hashing nedir?




 Gözümüzde canlandırmak için örnek vererek açıklamaya çalışayım. Mesela bir dosyamız var ve bu dosyada bir topluluğa üye olan insanların kayıtlarını tutacağız. Dosyaya kayıtları yerleştirirken ve dosyada arama yaparken kaydın dosyadaki konumuna ulaşmak için Hash fonksiyonu kullanıyoruz. Kayıt bilgileri içinden anahtar seçiyoruz. ID değerleri anahtarımız olsun. Daha sonra dosyanın boyutuna, anahtarların türüne göre fonksiyonumuzu belirliyoruz.

  Hash Fonksiyonunun amacı anahtarlardan ürettiği değerlerin olabildiğince eşsiz olması ve hızlı çalışmasıdır.

  Hash fonksiyonundan çıkan değerlere göre kayıtları dosyamıza yerleştiririz. Tabi her üretilen değer eşsiz olmayabilir. Yani fonksiyon bize birden fazla kayıt için aynı dosya konumunu verebilir. Bu durumda çakışmalar oluşur.

  Çakışmaları önlemek için "Packing Factor"ü azaltabiliriz.








   Çakışmaları daha karmaşık Hash fonksiyonu kullanarak azaltabiliriz.

   Çakışmaların çözümlenmesi için bağlantılı, bağlantısız, dinamik ve statik yaklaşımlar kullanılabilir. Fakat bağlantılı yaklaşımlar fazladan link bilgisi gerektirdiği için diğerlerinden daha fazla yer kaplar.

Hiç yorum yok:

Yorum Gönder