Różnica między drzew AVL i drzew splay

głosy
31

Uczę o różnych drzew, i natknąłem się na drzewach AVL drzew i pochylenie. Chcę wiedzieć

  1. Jaka jest różnica między drzew AVL i drzew splay?
  2. Na jakiej podstawie możemy wybrać te warkocz?
  3. Jakie są pozytywne i negatywne użytkownika na tych drzew?
  4. Jakie są występy tych drzew pod względem asymptotyczne tempo wzrostu?
Utwórz 19/09/2011 o 07:12
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
3

1) Jaka jest różnica między drzew AVL i drzew splay?

Są one podobne w strukturze i działalności wzywamy nich. Różnica polega na tym, że na drzewach splay, po każdej operacji, staramy się utrzymać drzewo prawie idealnie wyważone, tak aby przyszłe operacje zajmuje mniej czasu.

2) Na jakiej podstawie możemy wybrać te warkocz?

Drzewa splay są zawsze lepsze niż binarne drzewo poszukiwań, kiedy twoi oferty aplikacji z dużą ilością danych w drzewie, ale będzie potrzebował dostępu do podzbioru danych bardzo częściej niż inni. W tym przypadku dane Państwo dostęp do często przyjdzie blisko korzenia, jak w wyniku splay. Ponadto, każdy węzeł może następnie być dostępne w krótszym czasie niż dotychczas.

Zgodnie z ogólną zasadą o wyborze tych drzew, jeśli trzeba „średnie” log (n) w okresie operacji drzewo a następnie użyć drzewa pochylenie. Binarne drzewo nie może tego zagwarantować.

3) Jakie są pozytywne i negatywne użytkownika na tych drzew?

Pozytywne dla obu jest to, że obejść log (N) w obu tych strukturach danych teoretycznie.

Jak wspomniano drzew splay mają średni log (n) przez liczbę operacji. Oznacza to, że może masz n złożoność czasową dla operacji co najmniej raz w tym zestawie. Ale zostanie to zrekompensowane podczas uzyskiwania dostępu do częstych przedmiotów.

Negatywny szukania binarnego drzewa jest to, że trzeba mieć szczęście, aby mieć log (n) Zawsze. Jeśli klawisze nie są przypadkowe, to drzewo będzie ograniczyć do listy niczym postaci z tylko z jednej strony.

4) Jakie są występy tych drzew pod względem asymptotyczne tempo wzrostu?

drzewo splay Log (n) na średniej dla grupy działalności drzew. Binarne drzewo Log (n) tylko wtedy, gdy klucze idą w sposób losowy.

Wyniki na starcie są oczywiste tutaj pochylenie drzewa profilowania czas pracy można zobaczyć różnicę w czasie wykonywania w poszukiwaniu i bez ukosowania.

Odpowiedział 18/01/2012 o 04:40
źródło użytkownik

głosy
61

  1. Oba drzewa splay i AVL drzewa są binarne drzewo poszukiwań z doskonałymi gwarancji dobrego wykonania, ale różnią się, w jaki sposób osiągnąć te gwarantują, że wydajność. W drzewie AVL kształt drzewa jest ograniczony przez cały czas, tak że kształt drzewa jest wyważone, co oznacza, że ​​wysokość drzewa nie przekracza O (log n). Kształt ten jest utrzymywany na wstawienia i usunięcia, i nie zmienia się w trakcie wyszukiwań. pochylenie drzewa, z drugiej strony, utrzymać efektywne poprzez przekształcanie drzewo wyszukiwań w odpowiedzi na nią. W ten sposób często obejrzano elementy poruszać się w kierunku wierzchołka drzewa i mieć lepsze czasy wyszukiwania. Kształt drzew pochylenie nie jest ograniczona i zmienia się w zależności od tego, co wyszukiwań są wykonywane.

  2. Nie ma twardy i szybki przepis na ten temat. Jednak jedna kluczowa różnica między strukturami jest to, że drzewa AVL gwarantuje szybki odnośnika (O (log n)) Na każdej operacji, podczas gdy drzewa splay może zagwarantować jedynie, że każda sekwencja operacji n trwa co najwyżej O (n log n). Oznacza to, że jeśli trzeba wyszukiwań w czasie rzeczywistym, drzewa AVL może być lepiej. Jednak drzewa splay bywają znacznie szybciej przeciętnie, więc jeśli chcesz, aby zminimalizować całkowity czas pracy wyszukiwań drzew, drzewo splay może być lepiej. Dodatkowo, drzewa splay obsługuje niektórych operacji, takich jak dzielenie i scalanie bardzo sprawnie, a odpowiadające im operacje drzewo AVL są bardziej zaangażowane i mniej efektywne. Drzewa splay są bardziej efektywne niż pamięć AVL drzew, ponieważ nie trzeba przechowywać informacje równowagi w węzłach. Jednak AVL drzew są bardziej przydatne w środowiskach wielowątkowych z dużą ilością wyszukiwań, ponieważ wyszukiwań w drzewie AVL może odbywać się równolegle, podczas gdy nie można w drzewach splay. Ponieważ drzewa splay zmienią się na podstawie wyszukiwań, jeśli tylko potrzebują dostępu do małego podzbioru elementów drzewa, lub jeśli dostęp do niektórych elementów znacznie więcej niż inni, drzewa splay będzie prześcignąć drzewo AVL. Wreszcie, drzewa splay bywają łatwiejsze do wdrożenia niż AVL drzew, ponieważ logika rotacja jest znacznie łatwiejsze.

  3. Patrz (2)

  4. Drzewo AVL insercji, delecji i wyszukiwań się O (log n) każda. Drzewo Splay mieć te same gwarancje, ale gwarancja jest tylko w sensie zamortyzowanym. Wszelkie długa sekwencja operacji zajmie co najwyżej O (n log n), ale poszczególne operacje mogą wziąć jak O (n).

Mam nadzieję że to pomoże!

Odpowiedział 04/02/2012 o 23:06
źródło użytkownik

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