Óptima estructura de datos en disco para buscar un archivo?

votos
2

He pasado un par de horas leyendo los mensajes que estaban relacionados con la cuestión en un intento por tratar de llegar a una solución, pero no estaba realmente éxito en dar con uno.

Así que aquí va: Una vez me preguntaron en una entrevista, que la estructura de datos que yo usaría para buscar a si existía una palabra en particular en un archivo. El archivo también es supuestamente lo suficientemente grande como para no ser capaz de encajar en la memoria y el entrevistador realmente buscaba una solución en el disco.

Es el B-Tree una estructura de datos en el disco?

Un árbol de búsqueda binaria es una estructura de datos en memoria no es así?

Publicado el 22/02/2011 a las 22:55
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
1

Ambos son sólo estructuras de datos y pueden ser tanto en el disco o en memoria. Depende de cómo se decide usarlos.

Por cierto, los árboles B fueron motivados por la necesidad de tener estructuras en disco. Árboles binarios de búsqueda son sólo un caso especial de los árboles B, de una manera.

Respondida el 22/02/2011 a las 23:01
fuente por usuario

votos
2

Desea utilizar una estructura de datos que se asigna un nodo a una página de espacio en disco. Esto reducirá al mínimo la actividad del disco.

Debido a que un árbol B se utiliza a menudo para esto. Ver http://en.wikipedia.org/wiki/B-tree , específicamente la sección "Tiempo para buscar un archivo ordenado".

Respondida el 22/02/2011 a las 23:01
fuente por usuario

votos
4

En realidad, hay dos cuestiones diferentes posibles aquí:

  1. Dado un archivo masivo, y una palabra, ¿cómo se comprueba si la palabra existe en el archivo?

  2. Dado un archivo masivo, ¿cómo se construye un índice por lo que se puede comprobar de manera eficiente si existe una palabra arbitraria en el archivo?

El primer problema se resuelve de manera eficiente con Boyer-Moore y una búsqueda lineal a través del archivo. Si sólo está buscando una vez, la construcción de un índice es una completa pérdida de tiempo.

En cuanto al segundo problema, parece que el entrevistador está realmente empujando B-Trees.

Respondida el 22/02/2011 a las 23:03
fuente por usuario

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