Junior — Middle
Farklı koşullarda bir öğenin hash tablosuna eklenme işleminin verimliliği nasıl değerlendirilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir öğenin bir karma tablosuna eklenme verimliliği birkaç faktöre bağlıdır:
-
Tablo yük oranı (yük faktörü) — öğe sayısının dizi boyutuna oranı. Düşük yükte, ekleme genellikle amortize edilmiş O(1) sürede gerçekleşir.
-
Hash fonksiyonunun kalitesi — anahtarların küresel dağılımı, çakışmaları en aza indirir.
-
Çakışma yönetimi:
- Zincirleme (chaining) ile ekleme, bağlı liste veya başka bir konteynerde ekleme yapmaktır. Ortalama O(1), ancak en kötü durumda O(n), eğer tüm öğeler aynı kuyruğa düşerse.
- Açık adresleme (doğrusal tarama, kuadratik tarama) ile ekleme, boş bir yer aramayı gerektirebilir, bu da yüksek yük altında zamanı artırır.
-
Yeniden karma (rehashing) — yük oranı eşiğine ulaşıldığında, tablo genişletilir, bu da öğelerin yeniden dağıtımını gerektirir ve geçici olarak ekleme süresini artırır.
Özetle: iyi bir hash fonksiyonu ve makul bir yük oranıyla, ekleme amortize edilmiş O(1) süredir. Yüksek yük veya kötü hash fonksiyonu durumunda, zaman O(n)’ye kadar düşebilir.