Está en la página 1de 4

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

DEPARTAMENTO ACADEMICO DE ING. INFORMÁTICA


PRIMER EXAMEN PARCIAL DE ALGORITMICA III

1. Utilice el método iterativo para resolver la siguiente recurrencia: (6 puntos)

T(n) = T(n-1) + n -1 sabiendo que: T(1) = 2.

Se conoce además que:


𝑛(𝑛−1)
∑𝑛−1 𝑛−1
𝑖=1 𝑛 = 𝑛(𝑛 − 1) y ∑𝑖=1 𝑖 = 2

2. Determinar la complejidad del siguiente algoritmo: (7 puntos)

entero F(n)
Inicio
Si (n <= 1)
Entonces
Retorna 1
Caso Contrario
Inicio
para (i  1; i <= n; i++)
Inicio
x  1
Mientras (x < n) hacer
Inicio
x  x*2
Fin
Fin
Retorna F(n/2)+F(n/2)
Fin
Fin

3. Diseñar un algoritmo para ordenar los elementos de una matriz cuadrada utilizando el algoritmo de selección
directa. Luego determinar su complejidad Θ. (vea el ejemplo). (7 puntos)

5 8 6 13 1 2 3 3
14 1 3 3 4 5 5 5
4 6 5 5 6 6 7 8
7 10 12 2 10 12 13 14

Cusco 18 de mayo de 2016


SOLUCION

1. Utilice el método iterativo para resolver la siguiente recurrencia: (6 puntos)

T(n) = T(n-1) + n -1 sabiendo que: T(1) = 2.

Se conoce además que:


𝑛(𝑛−1)
∑𝑛−1 𝑛−1
𝑖=1 𝑛 = 𝑛(𝑛 − 1) y ∑𝑖=1 𝑖 = 2

1. T(n) = T(n-1) + n -1
T(n-1) = T(n-1-1) + (n-1) -1
T(n-1) = T(n-2) +(n-2)
Reemplazando en 1 tenemos:
2. T(n) = T(n-2) + (n-2) + (n-1)
T(n-2) = T(n-2-1) + (n-2) -1
T(n-2) = T(n-3) +(n-3)
Reemplazando en 2 tenemos:
3. T(n) = T(n-3) +(n-3)+(n-2)+(n-1)

k. T(n) = T(n-k) +∑𝒌𝒊=𝟏(𝒏 − 𝒊)

Sabemos que T(1)=2 entonces n-k=1 de donde k=n-1

T(n) = T(1) +∑𝑛−1


𝑖=1 (𝑛 − 𝑖)
T(n) = 2 + ∑𝑛−1 𝑛−1
𝑖=1 𝑛 − ∑𝑖=1 𝑖
𝑛(𝑛−1)
T(n) = 2 + 𝑛(𝑛 − 1) − 2

Resolviendo tenemos:

𝑛2 𝑛
𝑇(𝑛) = 2 + −
2 2

Por consiguiente: 𝑇(𝑛) ∈ 𝑂(𝑛2 )

2. Determinar la complejidad del siguiente algoritmo: (7 puntos)

entero F(n)
Inicio
Si (n <= 1)
Entonces
Retorna 1
Caso Contrario
Inicio
para (i  1; i <= n; i++)
Inicio
x  1
Mientras (x < n) hacer
Inicio
x  x*2
Fin
Fin
Retorna F(n/2)+F(n/2)
Fin
Fin
La ecuación de recurrencia será:

1 𝑠𝑖 𝑛 ≤ 1
𝑇(𝑛) = { 𝑛
2𝑇 ( ) + 𝑛 log 𝑛 + 1 𝑠𝑖 𝑛 > 1
2

Aplicando el teorema maestro divisorio tenemos que:

CASO 2:

a = 2, b=2, f(n) = n log n +1

I.- Calcular 𝑑 = log 𝑏 𝑎

𝑑 = log 2 2 = 1

II.- Confirmar si se cumple la condición: 𝑓(𝑛) ∈ 𝜃(𝑛log𝑏 𝑎 𝑙𝑜𝑔𝑘 (𝑛))


Con k =1 tenemos:
𝑓(𝑛) ∈ 𝜃 (𝑛 log 𝑛)
𝑛 log 𝑛 + 1 ∈ 𝜃(𝑛 log 𝑛)
III.- Notación de orden exacto:
Si k =1
𝑇(𝑛) ∈ 𝜃(𝑛log𝑏 𝑎 𝑙𝑜𝑔𝑘+1 (𝑛))
𝑻(𝒏) ∈ 𝜽(𝒏 𝒍𝒐𝒈𝟐 𝒏)

3. Diseñar un algoritmo para ordenar los elementos de una matriz cuadrada utilizando el algoritmo de
selección directa. Luego determinar su complejidad Θ. (vea el ejemplo). (7 puntos)

5 8 6 13 1 2 3 3
14 1 3 3 4 5 5 5
4 6 5 5 6 6 7 8
7 10 12 2 10 12 13 14

OrdenarMatriz(Matriz,n)
Inicio
{pasar matriz a un vector}
k=1
Para(i = 1; i <= n2 ; i++)
Para(j=1; j<= n2; j++)
Inicio
Vector[k] = Matriz[i,j]
K++
Fin
{ordenar el vector mediante seleccion}

Para(i=1; i <= n2-1; i++)


Inicio
{encontrar el menor}
Menor = i
Para (j = i+1; j <= n2; j++)
Si (Vector[j] < Vector [menor])
Entonces
Menor = j
{intercambiar con el menor}
Intercambiar(Vector[i], Vector[menor])

Fin

{pasar del vector a la matriz}

K=1
Para(i = 1; i <= n2 ; i++)
Para(j=1; j<= n2; j++)
Inicio
Matriz[i,j] = Vector[k]
K++
Fin

Fin

Por consiguiente

T(n) es O(n4)