BST, sağlama Denemeler ve harita arasındaki fark

oy
4

Ben Harita (stl) ve BST, karma Denemeler bazı blog ve öğretici okuyun. Ben birini kullanmak daha iyi ve nerede olduğu çok karıştı. Onların bağımlı tüm uygulama olduğu için onları anlamsız arasındaki böyle bir fark yaratmak için biliyorum. Orada biraz daha spesifik söyler misiniz ve karmaşıklığı (en kötü, ort ve en iyi durumda) söylemeyi unuttum etmeyiniz.

Şimdiden teşekkürler...

Oluştur 16/08/2011 saat 10:07
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
6

BST İkili arama ağacı olduğunu. Bu bir sözlük için kullanılır. TSİ yapısına herhangi bir sınırlama vardır, ve bu yüzden, bir arama / ekleme / silme O (n) en kötü durumdur.

Harita [stl on] aynı zamanda bir sözlük olduğunu ve [stl üzerinde] aslında bir kırmızı-siyah ağaçtır. bunun yüzünden, yapılar üzerindeki sınırlamaları vardır BST özel bir türüdür, en kötü durum arama / ekleme / silme O (logn).

karma sözlük, farklı bir tür karma tablo olup, [iyi karma fonksiyonları ile], bir karma tablosu avantajı arama / silme / insert için O (1) ortalama süredir. Ancak en kötü durum çok fazla element ve çarpışır / veya rehash gerektiğinde [Load Balance çok yüksek olduğunda, daha büyük bir dizi tahsis ve tüm unsurları olduğunu için Rehash] olur O (n) 'dir.

Kalan deneme dizeleri için özeldir. Tüm ops vardır S dize ait uzunluğudur O (S). o başkalarına avantaj [dizeleri ile uğraşırken] yine dize okumak gerekiyor, bu yüzden karmaşıklığı bir eğer Mapdizeleri ile uğraşırken örneğin, aslında O (S * n * logn) 'dir.

ne zaman kullanılır?
Bir Map[ya da başka bir dengeli ağaç] hemen her zaman o zaman daha iyi bir seçim düzenli olmalıdır BST.
hash tableEğer ortalama kısa süre ister, ancak bazı kere Rehash nedeniyle performans kaybı olacağı umurumda değil iyi bir seçimdir, ve bazı durumlarda çarpışmalar meydana gelebilir.
TrieGenellikle dizeleri için iyi sözlük.

Cevap 17/08/2011 saat 08:54
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more