Quali sono i vantaggi di T-alberi sopra B +/- alberi?

voti
12

Ho esplorato le definizioni di T-alberi e B- / B + alberi. Da documenti sul web ho capito che gli alberi B un rendimento migliore in memoria gerarchica, come ad esempio le unità disco e la memoria cache.

Quello che non riesco a capire è perché T-alberi sono stati / sono utilizzati anche per la memoria piatta?

Essi sono pubblicizzati come spazio efficiente alternativa agli alberi AVL.

Nel caso peggiore, tutti i nodi foglia di un T-albero contengono solo un elemento e tutti i nodi interni contengono la quantità minima consentita, che è vicino a pieno. Ciò significa che solo sulla metà media dello spazio allocato viene utilizzato. Se non mi sbaglio, questo è lo stesso utilizzo come il peggior caso di B-alberi, quando i nodi di un B-albero sono mezzo pieno.

Supponendo che entrambi gli alberi memorizzare le chiavi localmente nei nodi, ma l'uso puntatori a fare riferimento ai record, l'unica differenza è che i B-alberi hanno per memorizzare i puntatori per ciascuno dei comparti. Ciò generalmente causare fino al 50% o meno luminosa (oltre T-alberi), a seconda delle dimensioni dei tasti. In realtà, questo è vicino al sovraccarico previsto in alberi AVL, assumendo nessun puntatore genitore, record incorporati nei nodi, chiavi embedded nei registri. È questo il guadagno di efficienza atteso che ci impedisce di utilizzare alberi B, invece?

T-alberi sono generalmente implementati in cima ad alberi AVL. alberi AVL sono più equilibrati di B-alberi. questo può essere collegata con l'applicazione di T-alberi?

È pubblicato 29/01/2011 alle 15:43
fonte dall'utente
In altre lingue...                            


2 risposte

voti
3

Posso darvi una storia personale che copre la metà della risposta, vale a dire, il motivo per cui ho scritto qualche codice Pascal per programmare alberi B + circa 18 anni fa.

il mio sistema di destinazione è un PC con due unità disco, ho dovuto memorizzare un indice su memoria non volatile e volevo capire meglio ciò che stavo imparando all'università. Sono stato molto soddisfatto della performance di un pacchetto commerciale, probabilmente dBASE III, o qualche prodotto Fox, non ricordo.

comunque: mi serviva queste operazioni:

  • consultare
  • inserimento
  • cancellazione
  • voce successiva
  • voce precedente

  • dimensione massima di indice non era nota

  • così i dati dovevano risiedere su disco
  • ogni accesso al supporto aveva costo elevato
  • la lettura di un intero blocco costano come leggere un byte

Alberi B + fatto quel piccolo PC lento davvero volare attraverso i dati!

le foglie avevano due puntatori in più in modo da formare una lista doppiamente collegata, per le ricerche sequenziali.

Risposto il 11/02/2011 a 23:49
fonte dall'utente

voti
2

In realtà la differenza risiede nel sistema si utilizza. Come il mio tutor all'università ha commentato che: se il problema risiede nella mancanza di memoria, o in mancanza di hdd determinerà quale albero e dell'attuazione si intende utilizzare. Molto probabilmente sarà B + tree.

Perché ci sono centinaia di implementazioni, per esempio con 2direction coda e uno code direzionali in cui è necessario elementi di pensiero ciclo, e inoltre ci sono diversi modi per memorizzare l'indice e recuperare determinerà i veri contro e minuti di qualsiasi implementazione.

Risposto il 25/02/2011 a 09:02
fonte dall'utente

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