Diferencia entre revisiones de «Final 13/12/2016 (Algoritmos II)»

De Cuba-Wiki
(Página creada con «1) Se pide construir una doble cola de prioridad que satisfaga: a) min y max en O(1) b) desencolar min y max en log(n) c) borrar min, borrar max en log(n) d) ingresar m...»)
 
m (Agrega un math en el ejercicio 2)
 
(No se muestran 8 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
1) Se pide construir una doble cola de prioridad que satisfaga:
{{back|Algoritmos_y_Estructuras_de_Datos_II}}
a) min y max en O(1)
b) desencolar min y max en log(n)
c) borrar min, borrar max en log(n)
d) ingresar m elementos en O( min{ n + m, m log(n) })


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 O(log(n)). Recorrer de forma iterativa todo en tiempo lineal. No olvidar conceptos de aliasing y de argumentos.
== Ejercicio 1 ==
Se pide construir una doble cola de prioridad que satisfaga:


3) Analizar los siguientes peores casos. Si se puede utilizar el teorema maestro, utilizarlo. Justificar.
a) min y max en <math>O(1)</math>
a) T(N)= 4 T(N/2) + 3 N^2
b) T(N)= 16 T(N/4) + (N^2)/log(N)
c) T(N)= 2^N T(N/8) + 1
d) T(N)= 3 T(N/2) + N^2 log(n)
e) T(N) = 16 T(N/2) + F(N) log(n)
donde F(N)= N^3 (si n par) N^2 (sino)
f) T(N) = 3 T(N/2) + F(N)
donde F(N)= N^3 (si n par) N^2 (sino)


4) Se brinda un TAD Conjunto especificado con los siguientes cambios significativos:
b) desencolar min y max en log(n)
Obs:
 
c) borrar min, borrar max en log(n)
 
d) ingresar m elementos en <math>O( min\{ n + m, m *log(n) \})</math>
 
== 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 <math>O(log(n))</math>. Recorrer de forma iterativa todo en tiempo lineal. No olvidar conceptos de aliasing y de argumentos.
 
== Ejercicio 3 ==
Analizar los siguientes peores casos. Si se puede utilizar el teorema maestro, utilizarlo. Justificar.
 
a) <math>T(N)= 4 T(N/2) + 3 N^2</math>
 
b) <math>T(N)= 16 T(N/4) + (N^2)/log(N)</math>
 
c) <math>T(N)= 2^N T(N/8) + 1</math>
 
d) <math>T(N)= 3 T(N/2) + N^2 log(n)</math>
 
e) <math>T(N) = 16 T(N/2) + F(N) log(n)</math>
donde <math>F(N)= N^3</math> (si n par) <math>N^2</math> (sino)
 
f) <math>T(N) = 3 T(N/2) + F(N)</math>
donde <math>F(N)= N^3</math> (si n par) <math>N^2</math> (sino)
 
== Ejercicio 4 ==
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')
c =obs c' <=> secu(c) =obs secu(c')
   
   
Otras Operaciones:
Otras Operaciones:
  oneOff(c) = prim(secu(c))
  oneOff(c) = prim(secu(c))


  A) Explicar si está o no bien especificado, y si es correcto respecto a la especificación de la cátedra.
Axiomas:
  esPermutacion(c,secu(c))= true  // axiomatizacion de Secu() es


B) suponer correcto. ¿Qué aspectos te parecen mejores o peores?


C) Justificar si puede demostrar esto:
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?
 
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 38: Línea 58:
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) DameUno(Ag(n, Ag(n_1, ... ( Ag(n_k, vacío())...))) =obs oneOff(Add(n, Ag(n_1, ... ( Add(n_k, vacío())...)))
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]]

Revisión actual - 18:11 19 sep 2017

Plantilla:Back

Ejercicio 1[editar]

Se pide construir una doble cola de prioridad que satisfaga:

a) min y max en

b) desencolar min y max en log(n)

c) borrar min, borrar max en log(n)

d) ingresar m elementos en

Ejercicio 2[editar]

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 . Recorrer de forma iterativa todo en tiempo lineal. No olvidar conceptos de aliasing y de argumentos.

Ejercicio 3[editar]

Analizar los siguientes peores casos. Si se puede utilizar el teorema maestro, utilizarlo. Justificar.

a)

b)

c)

d)

e) donde (si n par) (sino)

f) donde (si n par) (sino)

Ejercicio 4[editar]

Se brinda un TAD Conjunto especificado con los siguientes cambios significativos:

Obs:
 secu()

Igualdad Observacional:

c =obs c' <=> secu(c) =obs secu(c')

Otras Operaciones:

oneOff(c) = prim(secu(c))

Axiomas:

esPermutacion(c,secu(c))= true   // axiomatizacion de Secu() es


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?

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())...))
<=> 
Add(n, Ag(n_1, ... ( Add(n_k, vacío())...)) =obs Add(m, Add(m_1, ... ( Add(m_k, vacío())...))

Donde Add es el generador que reemplaza el comportamiento de Ag en la nueva especificación.

D)

DameUno(Ag(n, Ag(n_1, ... ( Ag(n_k, vacío())...))) =obs oneOff(Add(n, Ag(n_1, ... ( Add(n_k, vacío())...)))