Está en la página 1de 2

Universidad de Costa Rica

CI-1221 Estructuras de Datos y Análisis de Algoritmos


II Ciclo 2009

I Examen
Martes 22 de setiembre, 1 a 2:50 p.m.

El examen consta de 147 puntos pero no se reconocerán más de 120 (20% extra). Cada pregunta
empieza con un indicador de su puntaje y del tema del que trata. Si la pregunta tiene subítemes el
puntaje de cada uno de ellos es indicado al final de la pregunta. Se recomienda al estudiante echarle un
vistazo a los temas de las preguntas y a su puntaje antes de empezar a resolver el examen, para así
distribuir su tiempo de la mejor manera.

1. [40 pts.] Solución de recurrencias. Resuelva las siguientes recurrencias asumiendo en cada caso
que T  n=1 para n≤1.
(a) T  n=T  4 n/5 n [5 pts.]
(b) T  n=5T n /2n 2 [5 pts.]
(c) T  n=2 T  n/4n [7 pts.]
(d) T  n=T n−1n [8 pts.]
(e) T  n=2T n/2n lg n [15 pts.]

2. [76 pts.] Simulación de ejecución de algoritmos. Simule la ejecución de los siguientes


algoritmos sobre los arreglos A=〈1,2,3,4,5,6,7,8〉 y B=〈8,7,6,5,4,3,2,1〉 mostrando el (los)
estado(s) del (los) (sub)arreglos después de cada “paso” [iteración o llamado a (sub)función del
algoritmo] [4 pts. c/ simulación, excepto para ordenamiento por montículos: 8 pts.]. Indique
además para cada paso el número de comparaciones realizadas entre elementos del arreglo y el
número de escrituras al arreglo (p. ej. la escritura a una variable temporal como parte de un
intercambio de posiciones no cuenta como escritura al arreglo), y el número total de ambas al
finalizar el algoritmo [1 pto. c/ total]. Indique qué algoritmos utilizaron el mismo número de
comparaciones y de escrituras para ambos arreglos y qué algoritmos utilizaron un número
distinto, y explique si esto corresponde a lo esperado de acuerdo al análisis de la complejidad de
los algoritmos [6 pts.].
(a) Ordenamiento por selección
(b) Ordenamiento por inserción
(c) Ordenamiento por mezcla (mergesort)
(d) Ordenamiento rápido (quicksort) utilizando el primer o último elemento del subarreglo
como pivote.
(e) Ordenamiento usando montículos (heapsort) (Para este caso se puede utilizar la
representación en árbol para mostrar los estados)
(f) Búsqueda de la mediana en n utilizando el primer o último elemento del subarreglo
como pivote.
NOTAS:
i. Si el arreglo no cambia a lo largo de varios pasos, no es necesario replicar su estado ni
los conteos de operaciones siempre y cuando se explique la situación. (El uso de puntos
suspensivos puede aveces ser esclarecedor aquí).
ii. Si por la forma en que opera el algoritmo es evidente que solo parte del arreglo cambia
después de un paso, se puede omitir escribir el resto del arreglo. (El uso de puntos
suspensivos puede aveces ser esclarecedor aquí).
iii. La calificación recibida por el conteo de operaciones será proporcional a
max {1−E , 0} donde E es el error relativo:
∣# operaciones contadas−# operaciones real∣
E=
# operaciones real

3. [17 pts.] Montículos. Un montículo k-ario puede ser representado usando un arreglo de la
siguiente forma. La raíz se guarda en A[1], sus k hijos en A[2] … A[k+1], sus k2 hijos en A[k+2]
… A[k2+k+1], y así por el estilo. En general, el j-ésimo hijo  j=1,... , k  del nodo en la
posición i se encuentra en la posición h j i=k i−11 j y el padre del nodo en la posición
i se encuentra en la posición p i=⌊ i−2/ k 1 ⌋ .
(a) Muestre que p  h j i =i ∀ i , j. [5 pts.]
(b) Encuentre una cota ajustada   f n  para la altura del montículo en términos de k y el
número de nodos n. [4 pts.]
(c) Determine la complejidad computacional requerida para efectuar las siguientes operaciones
en un montículo máximo k-ario en el peor caso, en función de k y n.
i. Extraer el máximo [4 pts.]
ii. Insertar un elemento [4 pts.]

4. [14 pts.] Estadísticas de orden. La mediana ponderada de un conjunto de números x 1, x 2, ... x n


n
con pesos positivos p 1, p 2, ... pn y ∑ pi=1 se define como el elemento xk tal que
i=1
1 1
∑ pi
2 y ∑ pi≤ .
2
x x
i k ixxk

(a) Determine qué valor se les debe asignar a p 1, p 2, ... pn para obtener la mediana (corriente).
Justifique su respuesta. [6 pts].
(b) Describa cómo computar la mediana ponderada en tiempo n log n . [8 pts.]

También podría gustarte