[Cuentas de programación] buscar, ordenar, árbol B +

Prólogo

  "Programming Pearl" es un buen libro. Interpreta algoritmos y estructuras de datos. El análisis de problemas puede ayudar a los programadores a cambiar sus actitudes hacia las estructuras de datos y algoritmos. Encuentra y ordena adentro;

Encontrar

  Buscando, buscando, el concepto más importante es la búsqueda binaria, muchas estructuras de datos en realidad aplican el concepto de búsqueda binaria, como la tabla de salto, el árbol rojo negro, el árbol B +

Aplicación: base de datos

  Es lo más importante elegir la estructura de datos correcta para un problema de aplicación. Sabemos que muchas veces, los programadores necesitan elegir entre tiempo y espacio. Elegir la estructura correcta es una de las formas importantes de sobrecarga de tiempo y espacio;

  ¿Por qué es el árbol B +? La gente a menudo hace esta pregunta sobre la estructura de datos de la base de datos. De hecho, la respuesta es porque el árbol B + puede cumplir con los siguientes tres puntos, y estos tres puntos son solo operaciones comunes de las declaraciones SQL:

  1. Puede localizar rápidamente un elemento basado en id;
  2. Soporte para encontrar rápidamente todos los elementos en un cierto rango de un elemento;
  3. Puede encontrar rápidamente n elementos antes o después de cierto valor de elemento;

  Entonces, después de definir el problema, comenzamos a encontrar la estructura de datos correspondiente. El primer punto, pensamos en Hash, pero obviamente, Hash no admite 2 y 3, por lo que debemos comprometernos, elegir la búsqueda binaria y la búsqueda binaria de datos opcionales. Estructura: árbol binario equilibrado, mesa de salto, árbol rojo y negro, árbol B +;

  El tercer punto, es natural pensar en una lista doblemente vinculada, pero la lista vinculada no cumple con el segundo punto; en este momento, la estructura de datos de la tabla de salto es más apropiada:

【Red de fuente de fotos】

  Luego, mejora la tabla de salto y tendrás un árbol B +. Mirando la figura a continuación, ¿por qué un nodo necesita múltiples elementos? De hecho, la razón se debe a la brecha entre la velocidad del disco y la memoria, por lo que es mejor cargar los datos del disco a la vez solo un nodo, por lo que el nodo almacena el mejor elemento, y el tamaño de este valor es el tamaño de la página de caché 16K;

【Red de fuente de fotos】

  De hecho, hay otra cosa que vale la pena señalar. La estructura de datos utilizada por MongoDB no es un árbol B +; es un árbol B. De hecho, es fácil de entender. Los requisitos de búsqueda de las bases de datos de documentos suelen ser diferentes. Solo necesitan encontrar el valor, y rara vez lo hacen. Búsqueda de rango

Aplicación: teclado 9 Palace 

  Este ejemplo es familiar para la mayoría de los años 90. Los programadores de esa generación estimaron que muchas personas encontraron esta necesidad: la siguiente figura es un teclado de 9 cuadrados, donde si los datos son una palabra determinada, solo puede presionar 0, 1, 2, 3 , 4, 5, 6, 7, 8 y 9 teclados, por ejemplo, Fan y Dan, tanto en inglés como en pinyin, todos presionan el mismo número de teclado, lo que significa que todas las palabras tienen su propio Requisitos para socios pequeños con la misma clave: ¿Cómo encontrar rápidamente el registro con el nombre de la palabra abanico entre cientos de millones de registros de acuerdo con la entrada clave del usuario?

 

 

  Hay dos tipos de preguntas utilizadas en esta pregunta. La primera es ordenar, y la segunda es buscar. Naturalmente, ordenar es ordenar cientos de millones de registros. La búsqueda usa búsqueda binaria; el punto de la pregunta es, ¿qué clase?

  Logotipo : esta palabra se vio por primera vez en la programación de Zhuji, ya que las mismas teclas se llaman homónimos, y la secuencia positiva de homónimos es única, por lo que esta secuencia es la representación de homónimos; da cientos de millones de registros Después de que se hayan adjuntado todas las etiquetas, podemos ordenar de nuevo según la etiqueta, por lo que aparece un registro ordenado, suponiendo que estamos usando la combinación de clasificación. No diré mucho sobre la siguiente búsqueda. En este punto, el problema está resuelto.

 

Supongo que te gusta

Origin www.cnblogs.com/iCanhua/p/12723681.html
Recomendado
Clasificación