Esta hoja de enunciados debe ser entregada con los siguientes datos

Anuncio
ESTRUCTURAS DE DATOS Y
ALGORITMOS
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Código de I.S: 402029
Código de I.G: 412020
Primera Semana
Dpto. de Informática y Automática
Facultad de Ciencias
Enero 1999
Duración: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que está matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realización de este examen NO se permite el uso de Calculadora ni de ningún
tipo de material. Indique claramente la Ingeniería (Sistemas o Gestión) en la que está matriculado.
¡Error! Marcador no definido.¡Error! Marcador no definido.¡Error! Marcador no
definido.¡Error! Marcador no definido.¡Error! Marcador no definido.¡Error! Marcador no
definido.
1.- Realizar detalladamente el análisis del algoritmo (mejor caso , peor caso y caso promedio) de
selección directa.
PROCEDURE seleccion_directa;
VAR i,j,k: index; x: item;
BEGIN
FOR i:=1 TO n-1 DO
k:=i; x:=a[i];
FOR j:=i+1 TO n DO
IF a[j] < x THEN k:=j; x:=a[k] END;
END;
a[k]:=a[i]; a[i]:= x
END;
END seleccion_directa
Programa 1
2.- Explicar detalladamente el método de clasificación por partición (clasificación rápida), indicando
claramente las ideas en que se basa el algoritmo. Utilizar el siguiente arreglo inicial para mostrar su
funcionamiento.
58 69 26
66 108 32 20 82
Comentar cualitativamente el análisis del comportamiento del proceso de partición, explicando
las limitaciones de la clasificación rápida.
Completar el código del programa 2 (en Modula-2) para que realice el algoritmo de
clasificación rápida recursiva.
PROCEDURE rapida;
PROCEDURE sort(L,R : index);
VAR i,j : index; w,x : item;
BEGIN
i:=.........; j:=.........;
x:=...........................
REPEAT
WHILE ........ DO i:=i+1 END;
WHILE ........ DO j:=j-1 END;
IF i <= j THEN ........; ........; .........;
i:=i+1; j:=j-1; END
UNTIL i>j;
IF L < j THEN ...........END;
IF I < R THEN ...........END;
END sort;
BEGIN
sort(..........);
END rapida;
Programa 2
3.- En la figura 1 se presentan dos situaciones iniciales de árboles AVL. Explicar detalladamente el
efecto de la inserción del dato que se indica, especificando por qué hay necesidad o no de
rebalanceo y detallar el proceso de rebalanceo hasta alcanzar la situación final adecuada.
5
5
4
7
2
2
1
(a) Insertar dato:=1
7
4
(b) Insertar dato:=3
En el árbol (a) se inserta un dato de valor 1. En el árbol (b) se inserta un dato de valor 3
4.- Explicar la organización de árboles de búsqueda óptimos ilustrándolo mediante un ejemplo.
Definir claramente la longitud de trayectoria pesada y la longitud acumulada de trayectoria pesada.
Indicar las propiedades fundamentales de los árboles de búsqueda óptimos
Fórmulas:
z
ln x dx ? x (ln x ? 1)
Hn ? 1 ?
1 1
1
? ? ...
2 3
n
Hn ? ln n ? ? ?
1
? ...
2n
ESTRUCTURAS DE DATOS Y
ALGORITMOS
UNIVERSIDAD NACIONAL DE
EDUCACION A DISTANCIA
Código de I.S: 402029
Código de I.G: 412020
Segunda Semana
Dpto. de Informática y Automática
Facultad de Ciencias
Febrero 1999
Duración: 2 horas
Esta hoja de enunciados debe ser entregada con los siguientes datos:
Nombre: ..........................................................................................................................
D.N.I: ..............................................................................................................................
Centro en el que está matriculado......................................................................................
Centro en el que realiza el examen:....................................................................................
NOTA: Para la realización de este examen NO se permite el uso de Calculadora ni de ningún tipo
de material. Indique claramente la Ingeniería (Sistemas o Gestión) en la que está matriculado.
¡Error! Marcador no definido.¡Error! Marcador no definido.¡Error! Marcador no
definido.¡Error! Marcador no definido.¡Error! Marcador no definido.¡Error! Marcador no
definido.
1.- Para encontrar la primera presencia de una palabra en un texto se dispone de tres algoritmos: el
método de búsqueda directa de cadena, el método de Knuth-Morris-Pratt (KMP) y el algoritmo
Boyer-Moore (BM).
a) Indicar cuál de ellos utilizaría para encontrar una palabra en un texto con 10000 caracteres.
¿Utilizaría el mismo si el texto fuese de 50 caracteres?. Explique su elección en cada caso razonando
comparativamente, es decir, mostrando sus ventajas respecto a los otros métodos.
b) Explicar claramente cómo se realiza la comparación de caracteres en el algoritmo de BoyerMoore y cómo se calcula su tabla de distancias. Implementar en Modula-2 el segmento de código
para calcular dicha tabla.
2.- Realizar detalladamente el análisis del algoritmo (mejor caso , peor caso y caso promedio) de
selección directa.
PROCEDURE seleccion_directa;
VAR i,j,k: index; x: item;
BEGIN
FOR i:=1 TO n-1 DO
k:=i; x:=a[i];
FOR j:=i+1 TO n DO
IF a[j] < x THEN k:=j; x:=a[k] END;
END;
a[k]:=a[i]; a[i]:= x
END;
END seleccion_directa
3.- Realizar los siguientes procedimientos en Modula-2, definiendo las estructuras adecuadas para
los tipos de datos que se indican.
a) Procedimiento iterativo para imprimir una lista enlazada con implementación dinámica.
b) Procedimiento recursivo para imprimir una lista enlazada con implementación dinámica.
c) Procedimiento para imprimir una pila con implementación estática.
d) Procedimiento para imprimir una cola con implementación dinámica.
4.- Un árbol B Binario Simétrico (BBS) se define como aquel que posee las siguientes
propiedades:
1) Todo nodo contiene una llave y, como máximo, dos (apuntadores a) subárboles.
2) Todo apuntador es horizontal o vertical. No existen dos apuntadores consecutivos
horizontales en ninguna trayectoria de búsqueda.
3) Todos los nodos terminales (nodos sin descendientes) aparecen en el mismo nivel (terminal)
Construir un árbol BBS con las siguientes inserciones en el orden dado
1/2/3/4/5/6/7
indicando claramente en cada inserción dónde y por qué se inserta cada nodo, así como por qué y
cómo se debe rebalancear en su caso el árbol.
Fórmulas:
z
ln x dx ? x (ln x ? 1)
Hn ? 1 ?
1 1
1
? ? ...
2 3
n
Hn ? ln n ? ? ?
1
? ...
2n
Descargar