ELO320 1er. Sem.2001

Tarea Analítica  3: Quicksort, Estadísticas de Orden, Stacks, Colas, Listas, Árboles, y Hashing,

1.- Durante la ejecución del procedimiento Randomized_Quicksort, ¿Cuántas llamadas son hechas a la función generadora de números aleatorios (random) en el peor caso? ¿Cuántas llamadas son hechas en el mejor caso?

2.- Determine el contenido final para el arreglo C al aplicar Counting_Sort sobre el arreglo A=<7,1,3,1,2,4,5,7,2,4,3>. k=7.

3.- Suponga que usamos Randomized_Select para seleccionar el elemento mínimo del arreglo A= <3,2,9,0,7,5,4,8,6,1>. Describa la secuencia de operaciones que resultan en le peor desempeño de Randomized_Select.

4.-Sean X[1..n] e Y[1..n] dos arreglos, cada uno conteniene n números ya ordenados en forma creciente. Proponga un algoritmo de tiempo O(lgn) para encontrar la mediana de los 2n elementos en los arreglos X e Y.

5.-Implemente un stack usando una lista simplemente enlazada. La operación Push y Pop deberían tomar tiempo O(1).

6.- Considere una tabla hash de tamaño m=1000 y una función de hash h(k) = trunc(m*(ParteFraccionaria(k*A))) para A=(sqrt(5)-1)/2.
Calcule las localizaciones a las cuales las claves 61, 62, 63, 64, y 65 son mapeadas.  (Obs: trunc toma la parte entera del argumento eliminando la fraccionaria,;ParteFrancionaria: toma la parte fraccionaria y deja como cero la parte entera.

7.- Obtenga algoritmos recursivos que recorran el árbol en pre-orden y post-orden en tiempo O(n) sobre un árbol de n nodos.