Edición de «Final 13/12/2016 (Algoritmos II)»
De Cuba-Wiki
Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces publica los cambios para así efectuar la reversión.
Revisión actual | Tu texto | ||
Línea 1: | Línea 1: | ||
== Ejercicio 1 == | == Ejercicio 1 == | ||
Se pide construir una doble cola de prioridad que satisfaga: | Se pide construir una doble cola de prioridad que satisfaga: | ||
a) min y max en O(1) | |||
a) min y max en | b) desencolar min y max en log(n) | ||
c) borrar min, borrar max en log(n) | |||
b) desencolar min y max en log(n) | d) ingresar m elementos en O( min{ n + m, m log(n) }) | ||
c) borrar min, borrar max en log(n) | |||
d) ingresar m elementos en | |||
== Ejercicio 2 == | == Ejercicio 2 == | ||
Explicar la interfaz y estructura de representación de un modulo que implemente el TAD conjunto ordenado. Proveer las funciones necesarias para garantizar todas las cosas necesarias en tiempo eficiente. Insertar, buscar y borrar en | Explicar la interfaz y estructura de representación de un modulo que implemente el TAD conjunto ordenado. Proveer las funciones necesarias para garantizar todas las cosas necesarias en tiempo eficiente. Insertar, buscar y borrar en O(log(n)). Recorrer de forma iterativa todo en tiempo lineal. No olvidar conceptos de aliasing y de argumentos. | ||
== Ejercicio 3 == | == Ejercicio 3 == | ||
Analizar los siguientes peores casos. Si se puede utilizar el teorema maestro, utilizarlo. Justificar. | Analizar los siguientes peores casos. Si se puede utilizar el teorema maestro, utilizarlo. Justificar. | ||
a) T(N)= 4 T(N/2) + 3 N^2 | |||
a) | b) T(N)= 16 T(N/4) + (N^2)/log(N) | ||
c) T(N)= 2^N T(N/8) + 1 | |||
b) | d) T(N)= 3 T(N/2) + N^2 log(n) | ||
e) T(N) = 16 T(N/2) + F(N) log(n) | |||
c) | donde F(N)= N^3 (si n par) N^2 (sino) | ||
f) T(N) = 3 T(N/2) + F(N) | |||
d) | donde F(N)= N^3 (si n par) N^2 (sino) | ||
e) | |||
donde | |||
f) | |||
donde | |||
== Ejercicio 4 == | == Ejercicio 4 == | ||
Se brinda un TAD Conjunto especificado con los siguientes cambios significativos: | Se brinda un TAD Conjunto especificado con los siguientes cambios significativos: | ||
Obs: | |||
secu() | secu() | ||
Igualdad Observacional: | Igualdad Observacional: | ||
c =obs c' <=> secu(c) =obs secu(c') | |||
Otras Operaciones: | Otras Operaciones: | ||
Línea 47: | Línea 35: | ||
A) Explicar si está o no bien especificado, y si es correcto respecto a la especificación de la cátedra. | A) Explicar si está o no bien especificado, y si es correcto respecto a la especificación de la cátedra. | ||
B) suponer correcto. ¿Qué aspectos te parecen mejores o peores? | B) suponer correcto. ¿Qué aspectos te parecen mejores o peores? | ||
C) Justificar si puede demostrar esto: | C) Justificar si puede demostrar esto: | ||
Ag(n, Ag(n_1, ... ( Ag(n_k, vacío())...)) =obs Ag(m, Ag(m_1, ... ( Ag(m_k, vacío())...)) | Ag(n, Ag(n_1, ... ( Ag(n_k, vacío())...)) =obs Ag(m, Ag(m_1, ... ( Ag(m_k, vacío())...)) | ||
<=> | <=> | ||
Línea 58: | Línea 46: | ||
Donde Add es el generador que reemplaza el comportamiento de Ag en la nueva especificación. | Donde Add es el generador que reemplaza el comportamiento de Ag en la nueva especificación. | ||
D) | D) DameUno(Ag(n, Ag(n_1, ... ( Ag(n_k, vacío())...))) =obs oneOff(Add(n, Ag(n_1, ... ( Add(n_k, vacío())...))) | ||
[[Categoría: Finales]] | [[Categoría: Finales]] |