Almacenamiento y Recuperación de la Información

Trimestre 2005 Otoño - Tarea 2

Fecha de entrega: Viernes 2 de diciembre de 2005 (en clase)

Instrucciones: Conteste cada una de las siguientes preguntas. Cada pregunta vale un número entero entre cero y cinco puntos. La calificación de esta tarea será la suma de esos puntos dividida entre cuatro.

Pregunta 1: Considere la cadena formada por la concatenación de todas las letras de FRANCISCO, JAVIER, ZARAGOZA, MARTINEZ y las de todos sus nombres, sepárelas de dos en dos (FR, AN, CI, ...) e insértelas en un índice simple. Ahora ponga primero las letras de todos sus nombres y luego las de los míos, sepárelas de dos en dos y bórrelas del índice.

Pregunta 2: ¿Se podrá realizar la operación XOR de forma cosecuencial en dos listas? Justifique su respuesta. NOTA: la operación XOR entre dos listas de entrada produce una lista de salida en la cual aparecen aquellas entradas que están en exactamente una lista de entrada.

Pregunta 3: Suponga que tiene una cinta con 1,000,000,000 de registros y que cada registro contiene únicamente un caracter ASCII. Describa un algoritmo eficiente que escriba al final de los registros grabados en esa misma cinta todos los registros ordenados de forma ascendente.

Pregunta 4: Suponga que tiene una capacidad de memoria para M registros de tamaño fijo y que tiene dos archivos con KM registros cada uno (donde K es un entero mayor que 1). Más aún, suponga que un archivo está ordenado ascendentemente y el otro descendentemente. Describa un algoritmo eficiente para producir un archivo de salida que contenga los 2KM registros ordenados ascendentemente.

Pregunta 5: Muestre el proceso de creación de un árbol B de orden 5 donde las claves son las mismas que insertó en el índice de la pregunta 1.

Pregunta 6: Muestre el proceso de creación de un árbol B+ donde las claves son las mismas que insertó en el índice de la pregunta 1, el orden del árbol B es 3 y en cada secuencia hay un mínimo de 2 y un máximo de 4 claves.

Pregunta 7: Calcule el código de dispersión de cada uno de sus nombres, utilizando los códigos ASCII de las letras mayúsculas sin acentos, división en bloques de 8 bits y el número primo 251. Hágalo haciendo primero la suma y luego el residuo.

Pregunta 8: Suponga que tiene N claves y 4N posiciones de memoria disponibles. En cuál de los siguientes dos casos espera que ocurran menos colisiones: (a) Usando una función de dispersión donde a cada clave le toque una de las 4N posiciones de memoria disponibles. (b) Usando una función de dispersión donde a cada clave le toque un bloque de cuatro posiciones de memoria [recuerde que en este caso sólo ocurrirá una colisión cuando se tenga una quinta clave en ese bloque].