Sözlük uygulaması (Denge İkili Arama karma tablo vs ağacı)

oy
1

Hangi şartlar altında dengeli bir ikili arama ağacı yerine bir karma tablosu kullanılarak bir sözlük ADT uygulamak daha iyi olurdu?

Benim varsayım nedeniyle doğal sipariş bir ikili arama ağacı kullanmak her zaman daha iyidir olmasıydı.

Ama karma tablonun arama süresi ikili ağaç için O (logn) vs, O (1) kadar iyi olabilir doğrudur.

bu yüzden circumtaces ne olurdu emin değilim.

Oluştur 15/04/2011 saat 02:13
kaynak kullanıcı
Diğer dillerde...                            


3 cevaplar

oy
0

Sorunuz zaten cevabını içerir:

Eğer herhangi bir içsel sipariş gerektirmeyen o zaman iyi performans için bir hashtable kullanın. senin gereksinimleri sipariş çeşit talep ederse o zaman bir ağaç kullanmayı düşünün.

Cevap 15/04/2011 saat 02:16
kaynak kullanıcı

oy
1

onlar doldurdu ve .Binary ağaçlar bu sorunu yok (sert gerçek zamanlı sistem bağlamında) bellek yeniden tahsis gerekir olsun zaman Hash tabloları performans sorununu olabilir. Hash tablolar ihtiyaç duydukları kadar ikili ağaçlar fazla bellek kullanmaz olarak aslında kullanmak daha fazla bellek, gerekir.

Cevap 15/04/2011 saat 02:19
kaynak kullanıcı

oy
0

Sözlük zamanı karmaşıklığı geçerli:

-----------------------------------------
| Operation   |  Dictionary |    BST    | 
-----------------------------------------
| Insert      |  O(1)       | O(log(n)) |
-----------------------------------------
| Delete      |  O(1)       | O(log(n)) |
-----------------------------------------
| Search      |  O(1)       | O(log(n)) |
-----------------------------------------

Peki nereye Sözlük vs BST kullanıyorsunuz? İşte BST bazı temel avantajlarıdır.

  • BST ile her zaman O (log (n)) operasyonu var ama bir karma tablo boyutlandırma pahalı bir işlemdir
  • Eğer sıralı bir şekilde anahtarlarını almak gerekiyorsa onları ağacın inorder geçme alabilirsiniz. Sıralama bir sözlüğe doğal değil
  • En yakın alt ve daha element veya aralık sorgu bulma gibi, istatistik yapmak.
Cevap 29/01/2019 saat 21:47
kaynak kullanıcı

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