Hash Tabloları

Hash Tabloları 📌 Neden Hash Tabloları? Binary Search’ün Özellikleri: Worst-case: O(log n) - çok verimli Gereksinimler: Sıralı veri + Doğrudan erişim Sıralı ekleme: O(n) - pratik olarak yavaş Hash Tabloları ile İyileştirme: Ekleme: Genelde O(1), worst-case O(n) Arama: Genelde O(1), worst-case O(n) 🔑 Hash Fonksiyonu Hash fonksiyonu, bir anahtarı (key) tablo indeksine dönüştürür. String için Örnek Hash Fonksiyonu public static int hash(String wort) { int m = 13; // Tablo boyutu (asal sayı olmalı) int k = 0; for (int i = 0; i < wort.length(); i++) { k += (int) wort.charAt(i); // ASCII/Unicode değerlerinin toplamı } return k % m; // Modulo ile indeks hesaplama } Hash Fonksiyonunun Özellikleri Uzay U (Sonsuz anahtar uzayı) ↓ Hash Fonksiyonu h(k) ↓ Hash Tablosu T [0...m-1] (Sonlu alan) Evrensel küme (U): Tüm olası anahtarlar Anahtar kümesi (S): Gerçekte kullanılan anahtarlar Hash tablosu (T): Sabit boyutlu m elemanlı dizi Önemli: Hash fonksiyonları genelde injektif değildir (farklı anahtarlar aynı indeksi verebilir) ⚠️ Önemli Not Tablo boyutu asal sayı olmalı! Bu, daha iyi dağılım sağlar. ...

November 4, 2025 · 3 min · Emrullah Enis Çetinkaya