Jakie są zalety T drzew ponad B +/- drzewa?

głosy
12

I badane definicje T drzew i B- / B + drzew. Z papierami w sieci Rozumiem, że B-drzewa osiągają lepsze wyniki w pamięci hierarchicznej, takich jak dyski twarde i pamięci podręcznej pamięci.

Nie mogę zrozumieć, dlaczego T-drzewa były / są wykorzystywane nawet do pamięci płaskiej?

Są one reklamowane jako przestrzeni skuteczną alternatywę dla AVL drzew.

W najgorszym przypadku, wszystkie węzły liści z drzewa T zawierać tylko jeden element i wszystkie węzły wewnętrzne zawierają minimalną ilość dozwolonych, który jest zbliżony do pełna. Oznacza to, że średnio tylko połowę przydzielonej przestrzeni jest wykorzystywana. Chyba że się mylę, to jest to samo wykorzystanie jak najgorszym przypadku B-drzew, kiedy węzły B-drzewa są połowy.

Zakładając, że oba drzewa przechowywanie kluczy lokalnie w węzłach, ale użyć wskaźników w odniesieniu do zapisów, a jedyną różnicą jest to, że B-drzewa muszą przechowywać wskaźniki dla każdego z oddziałów. To na ogół powoduje do 50% obciążeniu lub mniej (na T drzew), w zależności od rozmiaru kluczy. W rzeczywistości, to jest zbliżony do oczekiwanego w napowietrznych drzew AVL, zakładając brak wskaźnika nadrzędnego, zapisów wbudowane w węzłach, klucze osadzone w ewidencji. Jest to oczekiwany przyrost wydajności, które uniemożliwia nam za pomocą B-drzew zamiast?

T-drzewa są zazwyczaj realizowane na szczycie AVL drzew. AVL drzew są bardziej zrównoważone niż B-drzew. Może to być związane ze stosowaniem T drzew?

Utwórz 29/01/2011 o 15:43
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
3

Mogę dać osobistą historię, która zakrywa połowę odpowiedzi, czyli dlaczego napisałem jakiś kod do programowania Pascal B + drzew około 18 lat temu.

mój system docelowy był komputer z dwoma dyskami, miałem do przechowywania indeksu w pamięci nieulotnej i chciałem lepiej zrozumieć, co uczyłem się na studiach. Byłem bardzo zadowolony z osiągów zestawu handlowego, prawdopodobnie DBase III lub jakiegoś produktu Fox, nie mogę sobie przypomnieć.

tak czy owak: Potrzebowałem tych operacji:

  • wyszukiwanie
  • wprowadzenie
  • usunięcie
  • Następny przedmiot
  • poprzedni artykuł

  • Maksymalna wielkość indeksu nie wiadomo

  • więc dane musiały znajdować się na dysku
  • każdy dostęp do wsparcia miały wysokie koszty
  • czytając cały blok kosztują tyle samo jak czytanie jeden bajt

B + -trees się, że małe powolny PC naprawdę latać danych!

Leafs miał dwa dodatkowe wskaźniki więc utworzyli oni podwójnie połączonej listy, dla kolejnych wyszukiwań.

Odpowiedział 11/02/2011 o 23:49
źródło użytkownik

głosy
2

W rzeczywistości różnica tkwi w systemie używasz. Jak mój wykładowca uniwersytetu skomentował go: czy problem leży w braku pamięci lub na dysku twardym niedobór będzie określić, które drzewo iw których realizacja będzie używany. Najprawdopodobniej będzie to B + drzewa.

Ponieważ istnieją setki wdrożeń, na przykład z 2direction kolejki i jeden kierunkowych kolejkach gdzie trzeba elementów myślowych pętli, a także istnieje wiele sposobów na przechowywanie indeksu i pobierać będzie określić rzeczywiste zalety i min z każdej realizacji.

Odpowiedział 25/02/2011 o 09:02
źródło użytkownik

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