Estructura de datos Java y árbol de búsqueda de algoritmos múltiples (árbol 2-3, árbol B, árbol B +, árbol B *) [día11]

Árbol de búsqueda múltiple


Árbol binario y árbol B

Análisis de problemas del

árbol binario : La eficiencia operativa del árbol binario es alta, pero también hay problemas. Consulte el siguiente árbol binario:

Inserte la descripción de la imagen aquí

二叉树需要加载到内存的,如果二叉树的节点少,没有什么问题,
但是如果二叉树的节点很多(比如1亿), 就存在如下问题:

问题1:在构建二叉树时,需要多次进行i/o操作(海量数据存在数据库或文件中),
节点海量,构建二叉树时,速度有影响.
    
问题2:节点海量,也会造成二叉树的高度很大,会降低操作速度.
    
解决上述问题 -> 多叉树

Polytree

1. En un árbol binario, cada nodo tiene elementos de datos y hay como máximo dos nodos secundarios.
Si a cada nodo se le permite tener más elementos de datos y más nodos secundarios , es un
árbol de

múltiples vías (árbol de múltiples vías) 2. El árbol 2-3 que se describe más adelante, el árbol 2-3-4 es un árbol de múltiples vías , árbol de múltiples vías El árbol puede optimizar el árbol binario reorganizando los nodos y reduciendo la altura del árbol.

3. Ejemplo: (El árbol 2-3 a continuación es un árbol múltiple)

Inserte la descripción de la imagen aquí


Introducción básica del árbol B

El árbol B mejora la eficiencia al reorganizar los nodos, reducir la altura del árbol y reducir el número de lecturas y escrituras.
Inserte la descripción de la imagen aquí

1. Como se muestra en la Figura B, el árbol reduce la altura del árbol reorganizando los nodos .

2. El diseñador del sistema de archivos y el sistema de base de datos usa el principio de lectura anticipada del disco,
estableciendo el tamaño de un nodo igual a una página (el tamaño de la página es generalmente 4k), de
modo que cada nodo solo necesita una E / S para cargarse por completo
.

3. Establezca el grado M del árbol en 1024. Entre 60 mil millones de elementos, solo se puede leer con 4 operaciones de E / S como máximo Para el elemento deseado, B-tree (B +) se usa ampliamente en sistemas de almacenamiento de archivos y sistemas de bases de datos .


2-3 árboles

Introducción básica de 2-3 árboles:

  • 2-3 árbol es la estructura de árbol B más simple
  • Tiene las siguientes características: Todos los nodos de las hojas del árbol 2-3 están en la misma capa (siempre que el árbol B cumpla con esta condición)
  • Un nodo con dos nodos secundarios se denomina segundo nodo. El segundo nodo no tiene nodos secundarios
    o tiene dos nodos secundarios.
  • Un nodo con tres nodos secundarios se denomina tres nodos, y un nodo de tres no tiene ningún nodo secundario o tiene tres nodos secundarios.
  • El árbol 2-3 es un árbol compuesto por dos nodos y tres nodos. Caso de solicitud de 2-3 árboles
将数列{16, 24, 12, 32, 14, 26, 34, 10, 8, 28, 38, 20}
 构建成2-3树,并保证数据插入的大小顺序。

(演示构建2-3树的过程 ——> 如下:)

插入规则:
1.2-3树的所有叶子节点都在同一层.(只要是B树都满足这个条件)
2.有两个子节点的节点叫二节点,二节点要么没有子节点,
要么有两个子节点.
3.有三个子节点的节点叫三节点,三节点要么没有子节点,
要么有三个子节点
4.当按照规则插入一个数到某个节点时,不能满足上面三个要求,
就需要拆,先向上拆,如果上层满,则拆本层,
拆后仍然需要满足上面3个条件。 
5.对于三节点的子树的值大小仍然遵守(BST 二叉排序树)的规则

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Descripción:

  1. Al insertar 10, debería estar en 10-12-14, pero está lleno en este momento, por lo que mirando hacia arriba, 16-26 también está lleno
  2. Por lo tanto, divida 10-12-14 en 10 <-12-> 14, porque otros métodos de división no pueden cumplir con los requisitos de dos o tres nodos.

Inserte la descripción de la imagen aquí

  1. Pero en este momento, los nodos de hoja no están todos en la misma capa, y el valor de 26 debe ajustarse a lo siguiente (como se muestra en la figura)
    Inserte la descripción de la imagen aquí
    Inserte la descripción de la imagen aquí
    Inserte la descripción de la imagen aquí
    Inserte la descripción de la imagen aquí
    Inserte la descripción de la imagen aquí

otras instrucciones

Además de 23 árboles, hay 234 árboles, etc. El concepto es similar al de 23 árboles, y también es un árbol B. Como se muestra:


Árbol B, árbol B + y árbol B *

Introducción del árbol B

B-tree es B-tree y B es Balanced, lo que significa equilibrio. Algunas personas traducen árbol B en árbol B, lo cual es fácil de entender mal. Uno pensaría que el árbol B es una especie de árbol y el árbol B es otro tipo de árbol. De hecho, B-tree se refiere a B-tree .

Ya he introducido 2-3 árboles y 2-3-4 árboles. Son árboles B (en inglés: B-tree también se escribe como B-tree). Aquí daremos otra explicación. Cuando estamos aprendiendo Mysql, a menudo escuchamos que Un cierto tipo de índice se basa en árbol B o árbol B +, como se muestra en la figura:
Inserte la descripción de la imagen aquí

B树的说明:
1.B树的阶:节点的最多子节点个数。比如2-3树的阶是3,2-3-4树的阶是4

2.B-树的搜索,从根结点开始,对结点内的关键字(有序)序列进行二分查找,
如果命中则结束,否则进入查询关键字所属范围的儿子结点;
重复,直到所对应的儿子指针为空,或已经是叶子结点

3.关键字集合分布在整颗树中, 即叶子节点和非叶子节点都存放数据.

4.搜索有可能在非叶子结点结束

5.其搜索性能等价于在关键字全集内做一次二分查找

Introducción del árbol B +

El árbol B + es una variante del árbol B, y también es un árbol de búsqueda de múltiples rutas.

Inserte la descripción de la imagen aquí

B + Árbol de descripción:
1.B + árbol busca el árbol B es básicamente el mismo, excepto que el árbol B + solo ha alcanzado un nodo de hoja solo alcanzado (el árbol B puede ser un golpe de nodos no hoja), su rendimiento es equivalente al crítico Una búsqueda binaria para el conjunto completo de palabras
2 Todas las palabras clave aparecen en la lista enlazada de nodos hoja (es decir, los datos solo pueden estar en nodos hoja [también llamado índice denso]), y las palabras clave (datos) en la lista enlazada están en orden .
3. Es imposible llegar a un nodo no hoja.
4. Un nodo no hoja es equivalente al índice de un nodo hoja (índice disperso), y un nodo hoja es equivalente a la capa de datos
para almacenar datos (palabras clave). 5. Es más adecuado para el sistema de indexación de archivos
6 .B-tree y B + -tree tienen cada uno sus propios escenarios de aplicación. No se puede decir que B + -tree sea completamente mejor que B-tree, y viceversa.


Introducción del árbol B *

El árbol B * es una variante del árbol B +. En los nodos que no son raíces ni hojas del árbol B +, se añaden punteros a los hermanos.
Inserte la descripción de la imagen aquí

Descripción del árbol B *:

  • El árbol B * define que la cantidad de palabras clave de nodo no hoja es al menos (2/3) * M, es decir, la tasa de uso mínima de bloques es 2/3 y la tasa de uso mínima de bloques del árbol B + es 1/2 del árbol B + .

  • Desde la primera característica, podemos ver que la probabilidad de que el árbol B * asigne nuevos nodos es menor que la del árbol B + , y la tasa de utilización del espacio es mayor.

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/SwaeLeeUknow/article/details/109082568
Recomendado
Clasificación