Słownik realizacja (Balans binarne drzewo poszukiwań vs tablicy mieszającej)

głosy
1

W jakich okolicznościach byłoby lepiej wdrożyć słownik ADT korzystając zrównoważony binarne drzewo poszukiwań zamiast tabeli mieszania?

Moje założenie było takie, że zawsze lepiej jest użyć wyszukiwarki binarne drzewo z powodu swojej naturalnej kolejności.

Ale to prawda, że ​​tabeli mieszania za czas wyszukiwania może być tak dobry jak O (1), O (logn vs) na drzewie binarnym.

więc nie jestem pewien, co byłoby circumtaces.

Utwórz 15/04/2011 o 02:13
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
0

Twoje pytanie zawiera już odpowiedź:

Jeśli nie wymaga żadnej wewnętrznej zamawianie następnie używać hashtable dla lepszej wydajności. Jeśli twoje wymagania żądać jakiegoś uporządkowania następnie rozważyć użycie drzewo.

Odpowiedział 15/04/2011 o 02:16
źródło użytkownik

głosy
1

Tabele hash może mieć problem z wydajnością, kiedy się wypełniony i trzeba przydzielić pamięci (w kontekście twardego systemu czasu rzeczywistego) .Binary drzewa nie mają tego problemu. Tabele hash potrzebują więcej pamięci niż w rzeczywistości zastosowanie, w miarę jak drzewo binarne korzystania tyle pamięci, ile potrzebują.

Odpowiedział 15/04/2011 o 02:19
źródło użytkownik

głosy
0

Złożoność czas do słownika:

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

Więc gdzie używacie BST vs Dictionary? Oto główne zalety BST.

  • Z BST zawsze masz O (log (n)) operację, ale zmiany rozmiaru tabeli mieszania jest kosztowna operacja
  • Jeśli trzeba dostać klucze w posortowanej aby można je przejeżdżające Inorder drzewa. Sortowanie nie jest naturalne do słownika
  • Robi statystyk, jak znalezienie najbliższą mniejszą i większą element, lub zapytanie zasięgu.
Odpowiedział 29/01/2019 o 21:47
źródło użytkownik

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