Care sunt avantajele T-B copaci peste +/- copaci?

voturi
12

Am explorat definițiile T arborilor și B- / B + copaci. Din documentele de pe web am înțeles că B-arbori au performanțe mai bune în memoria ierarhică, cum ar fi unitățile de disc și memorie în cache.

Ceea ce nu pot înțelege de ce este T-copaci au fost / sunt folosite chiar și pentru memoria plat?

Ele sunt promovate ca spațiu alternativă eficientă de arbori AVL.

În cel mai rău caz, toate nodurile frunze de un T-arbore conțin doar un singur element și toate nodurile interne conțin cantitatea minimă permisă, care este aproape plin. Acest lucru înseamnă că, doar jumătate din media spațiul alocat este utilizat. Dacă nu mă înșel, aceasta este aceeași ca și utilizarea cel mai rău caz de B-arbori, în cazul în care nodurile B-copac sunt pe jumătate plin.

Presupunând că ambii arbori stoca cheile la nivel local în nodurile, dar utilizarea indicii pentru a se referi la înregistrările, singura diferență este că B-arborii trebuie să stocheze indicii pentru fiecare dintre ramurile. Acest lucru ar duce, în general, până la 50% sau mai puțin deasupra capului (peste T copaci), în funcție de mărimea cheilor. De fapt, acest lucru este aproape de deasupra capului de așteptat în copaci AVL, presupunând că nici un indicator părinte, înregistrări încorporate în nodurile, chei încorporate în înregistrările. Este de așteptat câștig de eficiență, care ne împiedică să folosească B-copaci în loc?

T-arbori sunt implementate, de obicei în partea de sus a arborilor AVL. arbori AVL sunt mai echilibrate decât B-copaci. Poate acest lucru să fie în legătură cu aplicarea de T-copaci?

Întrebat 29/01/2011 la 15:43
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
3

Vă pot da o poveste personală , care acoperă jumătate din răspunsul, care este, de ce am scris un cod Pascal pentru a programa B + copaci în urmă cu circa 18 de ani.

sistemul meu țintă a fost un PC cu două unități de disc, am avut pentru a stoca un index pe memorie nevolatilă și am vrut să înțeleagă mai bine ceea ce am învățat la universitate. Am fost foarte nemulțumit de performanța unui pachet comercial, probabil DBase III sau unui produs Fox, nu-mi amintesc.

oricum: Am nevoie de aceste operațiuni:

  • priveşte în sus
  • inserare
  • ștergere
  • Articolul următor
  • elementul anterior

  • dimensiunea maximă a indicelui nu era cunoscut

  • astfel încât datele trebuit să se afle pe disc
  • fiecare acces la sprijin a avut un cost ridicat
  • lectură un bloc întreg costă la fel ca lectură un octet

B + -trees că a făcut mici PC-ul lent acoperi într-adevăr prin intermediul datelor!

frunzele au avut două indicii suplimentare, astfel încât acestea au format o listă de două ori legate, pentru căutările secvențiale.

Publicat 11/02/2011 la 23:49
sursa de către utilizator

voturi
2

În realitate, diferența constă în sistemul pe care îl utilizați. Ca tutorele meu în universitate ea a comentat: în cazul în care problema se află în deficit de memorie, sau în lipsa hdd va determina care copac și în care punerea în aplicare veți utiliza. Cel mai probabil va fi B + copac.

Deoarece există sute de implementări, de exemplu, cu 2direction coadă și una cozile direcționale în cazul în care aveți nevoie pentru elemente de gândire în buclă, și, de asemenea, există mai multe moduri de a stoca index și preluați-l va determina contra reale și minute de orice implementare.

Publicat 25/02/2011 la 09:02
sursa de către utilizator

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