Árbol de búsqueda múltiple
Directorio de artículos
Á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:
二叉树需要加载到内存的,如果二叉树的节点少,没有什么问题,
但是如果二叉树的节点很多(比如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)
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.
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 二叉排序树)的规则
Descripción:
- 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
- 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.
- 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)
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:
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.
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.
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.