Junior
Hash tablosu nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir hash tablosu, bir ilişkilendirilmiş dizi (sözlük) uygulayan bir veri yapısıdır. Benzersiz anahtarlar içeren "anahtar-değer" çiftlerini saklar.
Temel ilkeler:
- Hash fonksiyonu: Anahtarı bir sayıya dönüştürür (hash kodu veya indeks). Bu indeks, değerin depolandığı yeri gösterir (sepet).
- Dizi (sepetler): Gerçek "anahtar-değer" çiftlerinin depolandığı yer.
- Çakışmalar: Farklı anahtarların aynı hash kodunu üretmesi durumu.
Çakışma çözümü:
- Bağlantı yöntemi (Separate chaining): Her sepette, aynı hash koduna sahip öğelerin listesi (veya başka bir veri yapısı) bulunur.
- Açık adresleme (Open addressing): Çakışma durumunda, farklı stratejiler kullanılarak boş sepet aranır (doğrusal sondalama, kuadratik sondalama, çift hashleme).
Özellikler:
- Hızlı erişim: İdeal durumda O(1) ekleme, arama ve silme işlemleri için.
- Hash fonksiyonuna bağlılık: Hash fonksiyonunun kalitesi ve çakışma çözüm stratejisi performansı önemli ölçüde etkiler.
- Hafıza kullanımı: Sepetler dizisi için ek hafıza gerektirir.
QA'da kullanımı:
- Test verilerinin saklanması (anahtar - parametre adı, değer - beklenen veya gerçek değer).
- Öğelerin benzersizliğinin kontrolü (örneğin, kullanıcı ID'leri).
- Önbelleklerin uygulanması.