¿Cuáles son las ventajas de T-árboles de más de B +/- árboles?

votos
12

He explorado las definiciones de T-árboles y B- / B + árboles. A partir de los documentos en la web entiendo que los árboles B se desempeñan mejor en la memoria jerárquica, tales como unidades de disco y de memoria caché.

Lo que no puedo entender es por qué fueron / son usados ​​T-árboles, incluso para la memoria plana?

Ellos se anuncian como espacio alternativo eficiente para árboles AVL.

En el peor de los casos, todos los nodos hoja de una T-árbol contienen sólo un elemento y todos los nodos internos contienen la cantidad mínima permitida, que es cerca de lleno. Esto significa que se utiliza en sólo la mitad de la media del espacio asignado. Si no me equivoco, esta es la misma utilización como el peor caso de los árboles B, cuando los nodos de un árbol B son medio lleno.

Suponiendo que ambos árboles almacenan las claves a nivel local en los nodos, pero punteros utilizar para hacer referencia a los registros, la única diferencia es que los árboles B tienen que almacenar punteros para cada una de las ramas. Esto generalmente causar hasta el 50% por encima o menos (más de T-árboles), dependiendo del tamaño de las teclas. De hecho, esto es cerca de la cabeza esperado en árboles AVL, suponiendo que no hay puntero padres, los registros incorporados en los nodos, llaves incrustadas en los registros. Es este el aumento de la eficiencia esperada que nos impide utilizar los árboles B en su lugar?

T-árboles normalmente se implementan en la parte superior de los árboles AVL. árboles AVL son más equilibrados que los árboles B. ¿Puede esto ser conectado con la aplicación de T-árboles?

Publicado el 29/01/2011 a las 15:43
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
3

Te puedo dar una historia personal que cubre la mitad de la respuesta, es decir, por la que escribí algo de código para programar Pascal árboles B + hace unos 18 años.

mi sistema objetivo era un PC con dos unidades de disco, tuve que guardar un índice en la memoria no volátil y quería entender mejor lo que estaba aprendiendo en la universidad. Yo estaba muy satisfecho con el rendimiento de un paquete comercial, probablemente DBase III, o algún producto de Fox, no puedo recordar.

de todos modos: necesitaba estas operaciones:

  • buscar
  • inserción
  • supresión
  • siguiente elemento
  • elemento anterior

  • tamaño máximo de índice no se conocía

  • lo que los datos tenían que residir en el disco
  • cada acceso al soporte tenía alto costo
  • la lectura de un bloque entero cuesta lo mismo que leer un byte

Los árboles B + hacen que las pequeñas PC lenta realmente volar a través de los datos!

las hojas tenían dos punteros adicionales por lo que formaron una lista doblemente enlazada, para las búsquedas secuenciales.

Respondida el 11/02/2011 a las 23:49
fuente por usuario

votos
2

En realidad, la diferencia radica en el sistema que utilice. Como mi tutor en la universidad comentó que: si el problema radica en la falta de memoria o en la escasez de disco duro va a determinar que tipo de árbol y en el que la aplicación va a utilizar. Lo más probable es que será árbol B +.

Debido a que hay cientos de implementaciones, por ejemplo con 2direction cola y uno colas direccionales en las que necesita elementos de pensamiento bucle, y también hay varias formas de almacenar el índice y recuperarlo determinará los contras reales y minutos de cualquier aplicación.

Respondida el 25/02/2011 a las 09:02
fuente por usuario

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